# API Reference <a name="API Reference" id="api-reference"></a>

## Constructs <a name="Constructs" id="Constructs"></a>

### ApiGatewayRestApi4XXErrorAlarm <a name="ApiGatewayRestApi4XXErrorAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm"></a>

This alarm detects a high number of client-side errors.

This can indicate an issue in the authorization or client request parameters. It could also mean that a resource was
removed or a client is requesting one that doesn't exist. Consider enabling CloudWatch Logs and checking for any errors
that may be causing the 4XX errors. Moreover, consider enabling detailed CloudWatch metrics to view this metric per
resource and method and narrow down the source of the errors. Errors could also be caused by exceeding the configured
throttling limit.

The alarm is triggered when number of client-errors exceeds the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.Initializer"></a>

```typescript
import { ApiGatewayRestApi4XXErrorAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApiGatewayRestApi4XXErrorAlarm(scope: IConstruct, id: string, props: ApiGatewayRestApi4XXErrorAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps">ApiGatewayRestApi4XXErrorAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps">ApiGatewayRestApi4XXErrorAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.isConstruct"></a>

```typescript
import { ApiGatewayRestApi4XXErrorAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApi4XXErrorAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.isOwnedResource"></a>

```typescript
import { ApiGatewayRestApi4XXErrorAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApi4XXErrorAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.isResource"></a>

```typescript
import { ApiGatewayRestApi4XXErrorAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApi4XXErrorAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.fromAlarmArn"></a>

```typescript
import { ApiGatewayRestApi4XXErrorAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApi4XXErrorAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.fromAlarmName"></a>

```typescript
import { ApiGatewayRestApi4XXErrorAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApi4XXErrorAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ApiGatewayRestApi5XXErrorAlarm <a name="ApiGatewayRestApi5XXErrorAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm"></a>

This alarm detects a high number of server-side errors.

This can indicate that there is something wrong on the API backend, the network,
or the integration between the API gateway and the backend API.

The alarm is triggered when number of server-errors exceeds the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.Initializer"></a>

```typescript
import { ApiGatewayRestApi5XXErrorAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApiGatewayRestApi5XXErrorAlarm(scope: IConstruct, id: string, props: ApiGatewayRestApi5XXErrorAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps">ApiGatewayRestApi5XXErrorAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps">ApiGatewayRestApi5XXErrorAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.isConstruct"></a>

```typescript
import { ApiGatewayRestApi5XXErrorAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApi5XXErrorAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.isOwnedResource"></a>

```typescript
import { ApiGatewayRestApi5XXErrorAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApi5XXErrorAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.isResource"></a>

```typescript
import { ApiGatewayRestApi5XXErrorAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApi5XXErrorAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.fromAlarmArn"></a>

```typescript
import { ApiGatewayRestApi5XXErrorAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApi5XXErrorAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.fromAlarmName"></a>

```typescript
import { ApiGatewayRestApi5XXErrorAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApi5XXErrorAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ApiGatewayRestApiCountAnomalyAlarm <a name="ApiGatewayRestApiCountAnomalyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm"></a>

An anomaly detection alarm on the API Gateway `Count` metric.

AWS recommends a static `Count` alarm with `LESS_THAN_THRESHOLD` to detect
unexpected traffic drops, but says the threshold "Depends on your situation".
This anomaly variant lets the band track historical traffic so the alarm
fires on actual deviations without picking a number that goes stale. By default
it flags both unexpected drops and unusual spikes (e.g. abuse or retry storms).

Because anomaly detection requires the `Average` statistic, this alarm tracks the
average request rate per period, not total request volume.

Note: on the drop side it detects partial drops below the expected band, not a
complete outage. API Gateway does not publish `Count` when there are zero requests,
so a full outage produces missing data (treated as not breaching) rather than a low
value. To alarm on zero traffic, pair this with a static `Count` alarm or a canary.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.Initializer"></a>

```typescript
import { ApiGatewayRestApiCountAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApiGatewayRestApiCountAnomalyAlarm(scope: IConstruct, id: string, props: ApiGatewayRestApiCountAnomalyAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps">ApiGatewayRestApiCountAnomalyAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps">ApiGatewayRestApiCountAnomalyAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.isConstruct"></a>

```typescript
import { ApiGatewayRestApiCountAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiCountAnomalyAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.isOwnedResource"></a>

```typescript
import { ApiGatewayRestApiCountAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiCountAnomalyAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.isResource"></a>

```typescript
import { ApiGatewayRestApiCountAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiCountAnomalyAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.fromAlarmArn"></a>

```typescript
import { ApiGatewayRestApiCountAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiCountAnomalyAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.fromAlarmName"></a>

```typescript
import { ApiGatewayRestApiCountAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiCountAnomalyAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ApiGatewayRestApiDetailedLatencyAlarm <a name="ApiGatewayRestApiDetailedLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm"></a>

This alarm detects high latency for a resource and method in a stage.

Find the IntegrationLatency metric value to check the API backend latency. If the two
metrics are mostly aligned, the API backend is the source of higher latency and you should
investigate there for performance issues. Consider also enabling CloudWatch Logs and checking
for any errors that might be causing the high latency.

The alarm is triggered when time in milliseconds exceeds or equals the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.Initializer"></a>

```typescript
import { ApiGatewayRestApiDetailedLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApiGatewayRestApiDetailedLatencyAlarm(scope: IConstruct, id: string, props: ApiGatewayRestApiDetailedLatencyAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps">ApiGatewayRestApiDetailedLatencyAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps">ApiGatewayRestApiDetailedLatencyAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.isConstruct"></a>

```typescript
import { ApiGatewayRestApiDetailedLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiDetailedLatencyAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.isOwnedResource"></a>

```typescript
import { ApiGatewayRestApiDetailedLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiDetailedLatencyAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.isResource"></a>

```typescript
import { ApiGatewayRestApiDetailedLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiDetailedLatencyAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.fromAlarmArn"></a>

```typescript
import { ApiGatewayRestApiDetailedLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiDetailedLatencyAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.fromAlarmName"></a>

```typescript
import { ApiGatewayRestApiDetailedLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiDetailedLatencyAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ApiGatewayRestApiIntegrationLatencyAnomalyAlarm <a name="ApiGatewayRestApiIntegrationLatencyAnomalyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm"></a>

An anomaly detection alarm on the API Gateway `IntegrationLatency` metric.

Catches drift in backend latency separately from total request latency, so
a slow backend integration shows up even when overall request latency is
within normal range (e.g. because backend latency was always part of the
baseline). This library has no static counterpart for this metric.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.Initializer"></a>

```typescript
import { ApiGatewayRestApiIntegrationLatencyAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApiGatewayRestApiIntegrationLatencyAnomalyAlarm(scope: IConstruct, id: string, props: ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps">ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps">ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.isConstruct"></a>

```typescript
import { ApiGatewayRestApiIntegrationLatencyAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.isOwnedResource"></a>

```typescript
import { ApiGatewayRestApiIntegrationLatencyAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.isResource"></a>

```typescript
import { ApiGatewayRestApiIntegrationLatencyAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.fromAlarmArn"></a>

```typescript
import { ApiGatewayRestApiIntegrationLatencyAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.fromAlarmName"></a>

```typescript
import { ApiGatewayRestApiIntegrationLatencyAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ApiGatewayRestApiLatencyAlarm <a name="ApiGatewayRestApiLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm"></a>

This alarm can detect when the API Gateway requests in a stage have high latency.

If you have detailed CloudWatch metrics enabled and you have different latency performance
requirements for each method and resource, we recommend that you create alternative alarms to
have more fine-grained monitoring of the latency for each resource and method.

The alarm is triggered when time in milliseconds exceeds or equals the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.Initializer"></a>

```typescript
import { ApiGatewayRestApiLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApiGatewayRestApiLatencyAlarm(scope: IConstruct, id: string, props: ApiGatewayRestApiLatencyAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps">ApiGatewayRestApiLatencyAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps">ApiGatewayRestApiLatencyAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.isConstruct"></a>

```typescript
import { ApiGatewayRestApiLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiLatencyAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.isOwnedResource"></a>

```typescript
import { ApiGatewayRestApiLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiLatencyAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.isResource"></a>

```typescript
import { ApiGatewayRestApiLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiLatencyAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.fromAlarmArn"></a>

```typescript
import { ApiGatewayRestApiLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiLatencyAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.fromAlarmName"></a>

```typescript
import { ApiGatewayRestApiLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiLatencyAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ApiGatewayRestApiLatencyAnomalyAlarm <a name="ApiGatewayRestApiLatencyAnomalyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm"></a>

An anomaly detection alarm on the API Gateway `Latency` metric.

Catches drift in total request latency without requiring a static threshold.
The static `Latency` alarm uses the AWS-recommended `p90` statistic and a
fixed threshold; this anomaly variant uses `Average` (required by anomaly
detection) and a CloudWatch-fitted band. It is intended to coexist with the
static alarm, not replace it.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.Initializer"></a>

```typescript
import { ApiGatewayRestApiLatencyAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApiGatewayRestApiLatencyAnomalyAlarm(scope: IConstruct, id: string, props: ApiGatewayRestApiLatencyAnomalyAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps">ApiGatewayRestApiLatencyAnomalyAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps">ApiGatewayRestApiLatencyAnomalyAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.isConstruct"></a>

```typescript
import { ApiGatewayRestApiLatencyAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiLatencyAnomalyAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.isOwnedResource"></a>

```typescript
import { ApiGatewayRestApiLatencyAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiLatencyAnomalyAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.isResource"></a>

```typescript
import { ApiGatewayRestApiLatencyAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiLatencyAnomalyAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.fromAlarmArn"></a>

```typescript
import { ApiGatewayRestApiLatencyAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiLatencyAnomalyAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.fromAlarmName"></a>

```typescript
import { ApiGatewayRestApiLatencyAnomalyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiLatencyAnomalyAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ApiGatewayRestApiRecommendedAlarms <a name="ApiGatewayRestApiRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms"></a>

A construct that creates the recommended alarms for an ApiGateway api.

The recommended alarms created by default for the ApiName and Stage are:
- 4XXError alarm
- 5XXError alarm
- Latency alarm
- Latency anomaly detection alarm (additional to the static Latency alarm)
- Count anomaly detection alarm (drop detection for low-traffic APIs)
- IntegrationLatency anomaly detection alarm (no static counterpart)

In order to create the Latency alarms for the Resource and Method dimensions the
configDetailedLatencyAlarmList must be specified.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ApiGateway](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ApiGateway)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.Initializer"></a>

```typescript
import { ApiGatewayRestApiRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApiGatewayRestApiRecommendedAlarms(scope: Construct, id: string, props: ApiGatewayRestApiRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps">ApiGatewayRestApiRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps">ApiGatewayRestApiRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.isConstruct"></a>

```typescript
import { ApiGatewayRestApiRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApiGatewayRestApiRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.property.alarm4XXError">alarm4XXError</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm">ApiGatewayRestApi4XXErrorAlarm</a></code> | The 4XXError alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.property.alarm5XXError">alarm5XXError</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm">ApiGatewayRestApi5XXErrorAlarm</a></code> | The 5XXError alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.property.alarmCountAnomaly">alarmCountAnomaly</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm">ApiGatewayRestApiCountAnomalyAlarm</a></code> | The Count anomaly detection alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.property.alarmIntegrationLatencyAnomaly">alarmIntegrationLatencyAnomaly</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm">ApiGatewayRestApiIntegrationLatencyAnomalyAlarm</a></code> | The IntegrationLatency anomaly detection alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.property.alarmLatency">alarmLatency</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm">ApiGatewayRestApiLatencyAlarm</a></code> | The Latency alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.property.alarmLatencyAnomaly">alarmLatencyAnomaly</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm">ApiGatewayRestApiLatencyAnomalyAlarm</a></code> | The Latency anomaly detection alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarm4XXError`<sup>Optional</sup> <a name="alarm4XXError" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.property.alarm4XXError"></a>

```typescript
public readonly alarm4XXError: ApiGatewayRestApi4XXErrorAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarm">ApiGatewayRestApi4XXErrorAlarm</a>

The 4XXError alarm.

---

##### `alarm5XXError`<sup>Optional</sup> <a name="alarm5XXError" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.property.alarm5XXError"></a>

```typescript
public readonly alarm5XXError: ApiGatewayRestApi5XXErrorAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarm">ApiGatewayRestApi5XXErrorAlarm</a>

The 5XXError alarm.

---

##### `alarmCountAnomaly`<sup>Optional</sup> <a name="alarmCountAnomaly" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.property.alarmCountAnomaly"></a>

```typescript
public readonly alarmCountAnomaly: ApiGatewayRestApiCountAnomalyAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarm">ApiGatewayRestApiCountAnomalyAlarm</a>

The Count anomaly detection alarm.

---

##### `alarmIntegrationLatencyAnomaly`<sup>Optional</sup> <a name="alarmIntegrationLatencyAnomaly" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.property.alarmIntegrationLatencyAnomaly"></a>

```typescript
public readonly alarmIntegrationLatencyAnomaly: ApiGatewayRestApiIntegrationLatencyAnomalyAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarm">ApiGatewayRestApiIntegrationLatencyAnomalyAlarm</a>

The IntegrationLatency anomaly detection alarm.

---

##### `alarmLatency`<sup>Optional</sup> <a name="alarmLatency" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.property.alarmLatency"></a>

```typescript
public readonly alarmLatency: ApiGatewayRestApiLatencyAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarm">ApiGatewayRestApiLatencyAlarm</a>

The Latency alarm.

---

##### `alarmLatencyAnomaly`<sup>Optional</sup> <a name="alarmLatencyAnomaly" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarms.property.alarmLatencyAnomaly"></a>

```typescript
public readonly alarmLatencyAnomaly: ApiGatewayRestApiLatencyAnomalyAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarm">ApiGatewayRestApiLatencyAnomalyAlarm</a>

The Latency anomaly detection alarm.

---


### ApplicationLoadBalancer <a name="ApplicationLoadBalancer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer"></a>

An extension for the ApplicationLoadBalancer construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.Initializer"></a>

```typescript
import { ApplicationLoadBalancer } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApplicationLoadBalancer(scope: Construct, id: string, props: ApplicationLoadBalancerProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancerProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancerProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.logAccessLogs">logAccessLogs</a></code> | Enable access logging for this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.removeAttribute">removeAttribute</a></code> | Remove an attribute from the load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.setAttribute">setAttribute</a></code> | Set a non-standard attribute on the load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.addListener">addListener</a></code> | Add a new listener to this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.addRedirect">addRedirect</a></code> | Add a redirection listener to this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.addSecurityGroup">addSecurityGroup</a></code> | Add a security group to this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.logConnectionLogs">logConnectionLogs</a></code> | Enable connection logging for this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metric">metric</a></code> | Return the given named metric for this Application Load Balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricActiveConnectionCount">metricActiveConnectionCount</a></code> | The total number of concurrent TCP connections active from clients to the load balancer and from the load balancer to targets. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricClientTlsNegotiationErrorCount">metricClientTlsNegotiationErrorCount</a></code> | The number of TLS connections initiated by the client that did not establish a session with the load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricConsumedLCUs">metricConsumedLCUs</a></code> | The number of load balancer capacity units (LCU) used by your load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricElbAuthError">metricElbAuthError</a></code> | The number of user authentications that could not be completed. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricElbAuthFailure">metricElbAuthFailure</a></code> | The number of user authentications that could not be completed because the IdP denied access to the user or an authorization code was used more than once. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricElbAuthLatency">metricElbAuthLatency</a></code> | The time elapsed, in milliseconds, to query the IdP for the ID token and user info. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricElbAuthSuccess">metricElbAuthSuccess</a></code> | The number of authenticate actions that were successful. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpCodeElb">metricHttpCodeElb</a></code> | The number of HTTP 3xx/4xx/5xx codes that originate from the load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpCodeTarget">metricHttpCodeTarget</a></code> | The number of HTTP 2xx/3xx/4xx/5xx response codes generated by all targets in the load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpFixedResponseCount">metricHttpFixedResponseCount</a></code> | The number of fixed-response actions that were successful. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpRedirectCount">metricHttpRedirectCount</a></code> | The number of redirect actions that were successful. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpRedirectUrlLimitExceededCount">metricHttpRedirectUrlLimitExceededCount</a></code> | The number of redirect actions that couldn't be completed because the URL in the response location header is larger than 8K. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricIpv6ProcessedBytes">metricIpv6ProcessedBytes</a></code> | The total number of bytes processed by the load balancer over IPv6. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricIpv6RequestCount">metricIpv6RequestCount</a></code> | The number of IPv6 requests received by the load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricNewConnectionCount">metricNewConnectionCount</a></code> | The total number of new TCP connections established from clients to the load balancer and from the load balancer to targets. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricProcessedBytes">metricProcessedBytes</a></code> | The total number of bytes processed by the load balancer over IPv4 and IPv6. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricRejectedConnectionCount">metricRejectedConnectionCount</a></code> | The number of connections that were rejected because the load balancer had reached its maximum number of connections. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricRequestCount">metricRequestCount</a></code> | The number of requests processed over IPv4 and IPv6. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricRuleEvaluations">metricRuleEvaluations</a></code> | The number of rules processed by the load balancer given a request rate averaged over an hour. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricTargetConnectionErrorCount">metricTargetConnectionErrorCount</a></code> | The number of connections that were not successfully established between the load balancer and target. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricTargetResponseTime">metricTargetResponseTime</a></code> | The time elapsed, in seconds, after the request leaves the load balancer until a response from the target is received. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricTargetTLSNegotiationErrorCount">metricTargetTLSNegotiationErrorCount</a></code> | The number of TLS connections initiated by the load balancer that did not establish a session with the target. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.alarmHttpCode4xxCount">alarmHttpCode4xxCount</a></code> | Creates an alarm that monitors the HTTP 4XX error count for the ApplicationLoadBalancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.alarmHttpCode5xxCount">alarmHttpCode5xxCount</a></code> | Creates an alarm that monitors the HTTP 5XX error count for the ApplicationLoadBalancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.alarmHttpCodeTarget5xxCount">alarmHttpCodeTarget5xxCount</a></code> | Creates an alarm that monitors the HTTP 5XX error count from targets for the ApplicationLoadBalancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.alarmRejectedConnectionCount">alarmRejectedConnectionCount</a></code> | Creates an alarm that monitors the rejected connection count for the ApplicationLoadBalancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the ApplicationLoadBalancer. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `logAccessLogs` <a name="logAccessLogs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.logAccessLogs"></a>

```typescript
public logAccessLogs(bucket: IBucket, prefix?: string): void
```

Enable access logging for this load balancer.

A region must be specified on the stack containing the load balancer; you cannot enable logging on
environment-agnostic stacks. See https://docs.aws.amazon.com/cdk/latest/guide/environments.html

###### `bucket`<sup>Required</sup> <a name="bucket" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.logAccessLogs.parameter.bucket"></a>

- *Type:* aws-cdk-lib.aws_s3.IBucket

---

###### `prefix`<sup>Optional</sup> <a name="prefix" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.logAccessLogs.parameter.prefix"></a>

- *Type:* string

---

##### `removeAttribute` <a name="removeAttribute" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.removeAttribute"></a>

```typescript
public removeAttribute(key: string): void
```

Remove an attribute from the load balancer.

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.removeAttribute.parameter.key"></a>

- *Type:* string

---

##### `setAttribute` <a name="setAttribute" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.setAttribute"></a>

```typescript
public setAttribute(key: string, value?: string): void
```

Set a non-standard attribute on the load balancer.

> [https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#load-balancer-attributes](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#load-balancer-attributes)

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.setAttribute.parameter.key"></a>

- *Type:* string

---

###### `value`<sup>Optional</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.setAttribute.parameter.value"></a>

- *Type:* string

---

##### `addListener` <a name="addListener" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.addListener"></a>

```typescript
public addListener(id: string, props: BaseApplicationListenerProps): ApplicationListener
```

Add a new listener to this load balancer.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.addListener.parameter.id"></a>

- *Type:* string

---

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.addListener.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.BaseApplicationListenerProps

---

##### `addRedirect` <a name="addRedirect" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.addRedirect"></a>

```typescript
public addRedirect(props?: ApplicationLoadBalancerRedirectConfig): ApplicationListener
```

Add a redirection listener to this load balancer.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.addRedirect.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancerRedirectConfig

---

##### `addSecurityGroup` <a name="addSecurityGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.addSecurityGroup"></a>

```typescript
public addSecurityGroup(securityGroup: ISecurityGroup): void
```

Add a security group to this load balancer.

###### `securityGroup`<sup>Required</sup> <a name="securityGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.addSecurityGroup.parameter.securityGroup"></a>

- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup

---

##### `logConnectionLogs` <a name="logConnectionLogs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.logConnectionLogs"></a>

```typescript
public logConnectionLogs(bucket: IBucket, prefix?: string): void
```

Enable connection logging for this load balancer.

A region must be specified on the stack containing the load balancer; you cannot enable logging on
environment-agnostic stacks.

> [https://docs.aws.amazon.com/cdk/latest/guide/environments.html](https://docs.aws.amazon.com/cdk/latest/guide/environments.html)

###### `bucket`<sup>Required</sup> <a name="bucket" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.logConnectionLogs.parameter.bucket"></a>

- *Type:* aws-cdk-lib.aws_s3.IBucket

---

###### `prefix`<sup>Optional</sup> <a name="prefix" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.logConnectionLogs.parameter.prefix"></a>

- *Type:* string

---

##### ~~`metric`~~ <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metric"></a>

```typescript
public metric(metricName: string, props?: MetricOptions): Metric
```

Return the given named metric for this Application Load Balancer.

###### `metricName`<sup>Required</sup> <a name="metricName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metric.parameter.metricName"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metric.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricActiveConnectionCount`~~ <a name="metricActiveConnectionCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricActiveConnectionCount"></a>

```typescript
public metricActiveConnectionCount(props?: MetricOptions): Metric
```

The total number of concurrent TCP connections active from clients to the load balancer and from the load balancer to targets.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricActiveConnectionCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricClientTlsNegotiationErrorCount`~~ <a name="metricClientTlsNegotiationErrorCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricClientTlsNegotiationErrorCount"></a>

```typescript
public metricClientTlsNegotiationErrorCount(props?: MetricOptions): Metric
```

The number of TLS connections initiated by the client that did not establish a session with the load balancer.

Possible causes include a
mismatch of ciphers or protocols.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricClientTlsNegotiationErrorCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricConsumedLCUs`~~ <a name="metricConsumedLCUs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricConsumedLCUs"></a>

```typescript
public metricConsumedLCUs(props?: MetricOptions): Metric
```

The number of load balancer capacity units (LCU) used by your load balancer.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricConsumedLCUs.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricElbAuthError`~~ <a name="metricElbAuthError" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricElbAuthError"></a>

```typescript
public metricElbAuthError(props?: MetricOptions): Metric
```

The number of user authentications that could not be completed.

Because an authenticate action was misconfigured, the load balancer
couldn't establish a connection with the IdP, or the load balancer
couldn't complete the authentication flow due to an internal error.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricElbAuthError.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricElbAuthFailure`~~ <a name="metricElbAuthFailure" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricElbAuthFailure"></a>

```typescript
public metricElbAuthFailure(props?: MetricOptions): Metric
```

The number of user authentications that could not be completed because the IdP denied access to the user or an authorization code was used more than once.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricElbAuthFailure.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricElbAuthLatency`~~ <a name="metricElbAuthLatency" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricElbAuthLatency"></a>

```typescript
public metricElbAuthLatency(props?: MetricOptions): Metric
```

The time elapsed, in milliseconds, to query the IdP for the ID token and user info.

If one or more of these operations fail, this is the time to failure.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricElbAuthLatency.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricElbAuthSuccess`~~ <a name="metricElbAuthSuccess" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricElbAuthSuccess"></a>

```typescript
public metricElbAuthSuccess(props?: MetricOptions): Metric
```

The number of authenticate actions that were successful.

This metric is incremented at the end of the authentication workflow,
after the load balancer has retrieved the user claims from the IdP.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricElbAuthSuccess.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricHttpCodeElb`~~ <a name="metricHttpCodeElb" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpCodeElb"></a>

```typescript
public metricHttpCodeElb(code: HttpCodeElb, props?: MetricOptions): Metric
```

The number of HTTP 3xx/4xx/5xx codes that originate from the load balancer.

This does not include any response codes generated by the targets.

###### `code`<sup>Required</sup> <a name="code" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpCodeElb.parameter.code"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.HttpCodeElb

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpCodeElb.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricHttpCodeTarget`~~ <a name="metricHttpCodeTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpCodeTarget"></a>

```typescript
public metricHttpCodeTarget(code: HttpCodeTarget, props?: MetricOptions): Metric
```

The number of HTTP 2xx/3xx/4xx/5xx response codes generated by all targets in the load balancer.

This does not include any response codes generated by the load balancer.

###### `code`<sup>Required</sup> <a name="code" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpCodeTarget.parameter.code"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.HttpCodeTarget

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpCodeTarget.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricHttpFixedResponseCount`~~ <a name="metricHttpFixedResponseCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpFixedResponseCount"></a>

```typescript
public metricHttpFixedResponseCount(props?: MetricOptions): Metric
```

The number of fixed-response actions that were successful.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpFixedResponseCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricHttpRedirectCount`~~ <a name="metricHttpRedirectCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpRedirectCount"></a>

```typescript
public metricHttpRedirectCount(props?: MetricOptions): Metric
```

The number of redirect actions that were successful.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpRedirectCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricHttpRedirectUrlLimitExceededCount`~~ <a name="metricHttpRedirectUrlLimitExceededCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpRedirectUrlLimitExceededCount"></a>

```typescript
public metricHttpRedirectUrlLimitExceededCount(props?: MetricOptions): Metric
```

The number of redirect actions that couldn't be completed because the URL in the response location header is larger than 8K.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricHttpRedirectUrlLimitExceededCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricIpv6ProcessedBytes`~~ <a name="metricIpv6ProcessedBytes" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricIpv6ProcessedBytes"></a>

```typescript
public metricIpv6ProcessedBytes(props?: MetricOptions): Metric
```

The total number of bytes processed by the load balancer over IPv6.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricIpv6ProcessedBytes.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricIpv6RequestCount`~~ <a name="metricIpv6RequestCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricIpv6RequestCount"></a>

```typescript
public metricIpv6RequestCount(props?: MetricOptions): Metric
```

The number of IPv6 requests received by the load balancer.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricIpv6RequestCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricNewConnectionCount`~~ <a name="metricNewConnectionCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricNewConnectionCount"></a>

```typescript
public metricNewConnectionCount(props?: MetricOptions): Metric
```

The total number of new TCP connections established from clients to the load balancer and from the load balancer to targets.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricNewConnectionCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricProcessedBytes`~~ <a name="metricProcessedBytes" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricProcessedBytes"></a>

```typescript
public metricProcessedBytes(props?: MetricOptions): Metric
```

The total number of bytes processed by the load balancer over IPv4 and IPv6.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricProcessedBytes.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricRejectedConnectionCount`~~ <a name="metricRejectedConnectionCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricRejectedConnectionCount"></a>

```typescript
public metricRejectedConnectionCount(props?: MetricOptions): Metric
```

The number of connections that were rejected because the load balancer had reached its maximum number of connections.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricRejectedConnectionCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricRequestCount`~~ <a name="metricRequestCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricRequestCount"></a>

```typescript
public metricRequestCount(props?: MetricOptions): Metric
```

The number of requests processed over IPv4 and IPv6.

This count includes only the requests with a response generated by a target of the load balancer.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricRequestCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricRuleEvaluations`~~ <a name="metricRuleEvaluations" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricRuleEvaluations"></a>

```typescript
public metricRuleEvaluations(props?: MetricOptions): Metric
```

The number of rules processed by the load balancer given a request rate averaged over an hour.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricRuleEvaluations.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricTargetConnectionErrorCount`~~ <a name="metricTargetConnectionErrorCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricTargetConnectionErrorCount"></a>

```typescript
public metricTargetConnectionErrorCount(props?: MetricOptions): Metric
```

The number of connections that were not successfully established between the load balancer and target.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricTargetConnectionErrorCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricTargetResponseTime`~~ <a name="metricTargetResponseTime" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricTargetResponseTime"></a>

```typescript
public metricTargetResponseTime(props?: MetricOptions): Metric
```

The time elapsed, in seconds, after the request leaves the load balancer until a response from the target is received.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricTargetResponseTime.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricTargetTLSNegotiationErrorCount`~~ <a name="metricTargetTLSNegotiationErrorCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricTargetTLSNegotiationErrorCount"></a>

```typescript
public metricTargetTLSNegotiationErrorCount(props?: MetricOptions): Metric
```

The number of TLS connections initiated by the load balancer that did not establish a session with the target.

Possible causes include a mismatch of ciphers or protocols.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.metricTargetTLSNegotiationErrorCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `alarmHttpCode4xxCount` <a name="alarmHttpCode4xxCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.alarmHttpCode4xxCount"></a>

```typescript
public alarmHttpCode4xxCount(props?: ApplicationLoadBalancerHttpCode4xxCountAlarmConfig): ApplicationLoadBalancerHttpCode4xxCountAlarm
```

Creates an alarm that monitors the HTTP 4XX error count for the ApplicationLoadBalancer.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.alarmHttpCode4xxCount.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig">ApplicationLoadBalancerHttpCode4xxCountAlarmConfig</a>

---

##### `alarmHttpCode5xxCount` <a name="alarmHttpCode5xxCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.alarmHttpCode5xxCount"></a>

```typescript
public alarmHttpCode5xxCount(props?: ApplicationLoadBalancerHttpCode5xxCountAlarmConfig): ApplicationLoadBalancerHttpCode5xxCountAlarm
```

Creates an alarm that monitors the HTTP 5XX error count for the ApplicationLoadBalancer.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.alarmHttpCode5xxCount.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig">ApplicationLoadBalancerHttpCode5xxCountAlarmConfig</a>

---

##### `alarmHttpCodeTarget5xxCount` <a name="alarmHttpCodeTarget5xxCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.alarmHttpCodeTarget5xxCount"></a>

```typescript
public alarmHttpCodeTarget5xxCount(props?: ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig): ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm
```

Creates an alarm that monitors the HTTP 5XX error count from targets for the ApplicationLoadBalancer.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.alarmHttpCodeTarget5xxCount.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig">ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig</a>

---

##### `alarmRejectedConnectionCount` <a name="alarmRejectedConnectionCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.alarmRejectedConnectionCount"></a>

```typescript
public alarmRejectedConnectionCount(props?: ApplicationLoadBalancerRejectedConnectionCountAlarmConfig): ApplicationLoadBalancerRejectedConnectionCountAlarm
```

Creates an alarm that monitors the rejected connection count for the ApplicationLoadBalancer.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.alarmRejectedConnectionCount.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig">ApplicationLoadBalancerRejectedConnectionCountAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: ApplicationLoadBalancerRecommendedAlarmsConfig): ApplicationLoadBalancerRecommendedAlarms
```

Creates the recommended alarms for the ApplicationLoadBalancer.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig">ApplicationLoadBalancerRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.fromApplicationLoadBalancerAttributes">fromApplicationLoadBalancerAttributes</a></code> | Import an existing Application Load Balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.fromLookup">fromLookup</a></code> | Look up an application load balancer. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.isConstruct"></a>

```typescript
import { ApplicationLoadBalancer } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancer.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.isOwnedResource"></a>

```typescript
import { ApplicationLoadBalancer } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancer.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.isResource"></a>

```typescript
import { ApplicationLoadBalancer } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancer.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromApplicationLoadBalancerAttributes` <a name="fromApplicationLoadBalancerAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.fromApplicationLoadBalancerAttributes"></a>

```typescript
import { ApplicationLoadBalancer } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancer.fromApplicationLoadBalancerAttributes(scope: Construct, id: string, attrs: ApplicationLoadBalancerAttributes)
```

Import an existing Application Load Balancer.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.fromApplicationLoadBalancerAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.fromApplicationLoadBalancerAttributes.parameter.id"></a>

- *Type:* string

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.fromApplicationLoadBalancerAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancerAttributes

---

##### `fromLookup` <a name="fromLookup" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.fromLookup"></a>

```typescript
import { ApplicationLoadBalancer } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancer.fromLookup(scope: Construct, id: string, options: ApplicationLoadBalancerLookupOptions)
```

Look up an application load balancer.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.fromLookup.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.fromLookup.parameter.id"></a>

- *Type:* string

---

###### `options`<sup>Required</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.fromLookup.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancerLookupOptions

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.loadBalancerArn">loadBalancerArn</a></code> | <code>string</code> | The ARN of this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.loadBalancerCanonicalHostedZoneId">loadBalancerCanonicalHostedZoneId</a></code> | <code>string</code> | The canonical hosted zone ID of this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.loadBalancerDnsName">loadBalancerDnsName</a></code> | <code>string</code> | The DNS name of this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.loadBalancerFullName">loadBalancerFullName</a></code> | <code>string</code> | The full name of this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.loadBalancerName">loadBalancerName</a></code> | <code>string</code> | The name of this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.loadBalancerRef">loadBalancerRef</a></code> | <code>aws-cdk-lib.interfaces.aws_elasticloadbalancingv2.LoadBalancerReference</code> | A reference to this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.loadBalancerSecurityGroups">loadBalancerSecurityGroups</a></code> | <code>string[]</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | The VPC this load balancer has been created in. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.connections">connections</a></code> | <code>aws-cdk-lib.aws_ec2.Connections</code> | The network connections associated with this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.isApplicationLoadBalancer">isApplicationLoadBalancer</a></code> | <code>boolean</code> | Indicates that this is an Application Load Balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.listeners">listeners</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListener[]</code> | A list of listeners that have been added to the load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.metrics">metrics</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancerMetrics</code> | All metrics available for this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.ipAddressType">ipAddressType</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.IpAddressType</code> | The IP Address Type for this load balancer. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `loadBalancerArn`<sup>Required</sup> <a name="loadBalancerArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.loadBalancerArn"></a>

```typescript
public readonly loadBalancerArn: string;
```

- *Type:* string

The ARN of this load balancer.

Example value: `arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-internal-load-balancer/50dc6c495c0c9188`

---

##### `loadBalancerCanonicalHostedZoneId`<sup>Required</sup> <a name="loadBalancerCanonicalHostedZoneId" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.loadBalancerCanonicalHostedZoneId"></a>

```typescript
public readonly loadBalancerCanonicalHostedZoneId: string;
```

- *Type:* string

The canonical hosted zone ID of this load balancer.

Example value: `Z2P70J7EXAMPLE`

---

##### `loadBalancerDnsName`<sup>Required</sup> <a name="loadBalancerDnsName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.loadBalancerDnsName"></a>

```typescript
public readonly loadBalancerDnsName: string;
```

- *Type:* string

The DNS name of this load balancer.

Example value: `my-load-balancer-424835706.us-west-2.elb.amazonaws.com`

---

##### `loadBalancerFullName`<sup>Required</sup> <a name="loadBalancerFullName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.loadBalancerFullName"></a>

```typescript
public readonly loadBalancerFullName: string;
```

- *Type:* string

The full name of this load balancer.

Example value: `app/my-load-balancer/50dc6c495c0c9188`

---

##### `loadBalancerName`<sup>Required</sup> <a name="loadBalancerName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.loadBalancerName"></a>

```typescript
public readonly loadBalancerName: string;
```

- *Type:* string

The name of this load balancer.

Example value: `my-load-balancer`

---

##### `loadBalancerRef`<sup>Required</sup> <a name="loadBalancerRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.loadBalancerRef"></a>

```typescript
public readonly loadBalancerRef: LoadBalancerReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_elasticloadbalancingv2.LoadBalancerReference

A reference to this load balancer.

---

##### `loadBalancerSecurityGroups`<sup>Required</sup> <a name="loadBalancerSecurityGroups" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.loadBalancerSecurityGroups"></a>

```typescript
public readonly loadBalancerSecurityGroups: string[];
```

- *Type:* string[]

---

##### `vpc`<sup>Optional</sup> <a name="vpc" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.vpc"></a>

```typescript
public readonly vpc: IVpc;
```

- *Type:* aws-cdk-lib.aws_ec2.IVpc

The VPC this load balancer has been created in.

This property is always defined (not `null` or `undefined`) for sub-classes of `BaseLoadBalancer`.

---

##### `connections`<sup>Required</sup> <a name="connections" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.connections"></a>

```typescript
public readonly connections: Connections;
```

- *Type:* aws-cdk-lib.aws_ec2.Connections

The network connections associated with this resource.

---

##### `isApplicationLoadBalancer`<sup>Required</sup> <a name="isApplicationLoadBalancer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.isApplicationLoadBalancer"></a>

```typescript
public readonly isApplicationLoadBalancer: boolean;
```

- *Type:* boolean

Indicates that this is an Application Load Balancer.

Will always return true, but is necessary to prevent accidental structural
equality in TypeScript.

---

##### `listeners`<sup>Required</sup> <a name="listeners" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.listeners"></a>

```typescript
public readonly listeners: ApplicationListener[];
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListener[]

A list of listeners that have been added to the load balancer.

This list is only valid for owned constructs.

---

##### `metrics`<sup>Required</sup> <a name="metrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.metrics"></a>

```typescript
public readonly metrics: IApplicationLoadBalancerMetrics;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancerMetrics

All metrics available for this load balancer.

---

##### `ipAddressType`<sup>Optional</sup> <a name="ipAddressType" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.ipAddressType"></a>

```typescript
public readonly ipAddressType: IpAddressType;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.IpAddressType

The IP Address Type for this load balancer.

If the `@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault`
feature flag is set (the default for new projects), and `addListener()` is called with `open: true`,
the load balancer's security group will automatically include both IPv4 and IPv6 ingress rules
when using `IpAddressType.DUAL_STACK_WITHOUT_PUBLIC_IPV4`.

For existing projects that only have IPv4 rules, you can opt-in to IPv6 ingress rules
by enabling the feature flag in your cdk.json file. Note that enabling this feature flag
will modify existing security group rules.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancer.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ApplicationLoadBalancerHttpCode4xxCountAlarm <a name="ApplicationLoadBalancerHttpCode4xxCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm"></a>

This anomaly detection alarm is used to detect when the load balancer is generating unusually many 4XX errors.

A high number of 4XX errors can indicate client-side issues or misconfigured requests.

The alarm is triggered when the number of 4XX errors is outside the upper threshold
of the anomaly detection band.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.Initializer"></a>

```typescript
import { ApplicationLoadBalancerHttpCode4xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApplicationLoadBalancerHttpCode4xxCountAlarm(scope: IConstruct, id: string, props: ApplicationLoadBalancerHttpCode4xxCountAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps">ApplicationLoadBalancerHttpCode4xxCountAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps">ApplicationLoadBalancerHttpCode4xxCountAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.isConstruct"></a>

```typescript
import { ApplicationLoadBalancerHttpCode4xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerHttpCode4xxCountAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.isOwnedResource"></a>

```typescript
import { ApplicationLoadBalancerHttpCode4xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerHttpCode4xxCountAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.isResource"></a>

```typescript
import { ApplicationLoadBalancerHttpCode4xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerHttpCode4xxCountAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.fromAlarmArn"></a>

```typescript
import { ApplicationLoadBalancerHttpCode4xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerHttpCode4xxCountAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.fromAlarmName"></a>

```typescript
import { ApplicationLoadBalancerHttpCode4xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerHttpCode4xxCountAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ApplicationLoadBalancerHttpCode5xxCountAlarm <a name="ApplicationLoadBalancerHttpCode5xxCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm"></a>

This anomaly detection alarm is used to detect when the load balancer is generating unusually many 5XX errors.

A high number of 5XX errors can indicate issues with the load balancer itself.

The alarm is triggered when the number of 5XX errors is outside the upper threshold
of the anomaly detection band.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.Initializer"></a>

```typescript
import { ApplicationLoadBalancerHttpCode5xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApplicationLoadBalancerHttpCode5xxCountAlarm(scope: IConstruct, id: string, props: ApplicationLoadBalancerHttpCode5xxCountAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps">ApplicationLoadBalancerHttpCode5xxCountAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps">ApplicationLoadBalancerHttpCode5xxCountAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.isConstruct"></a>

```typescript
import { ApplicationLoadBalancerHttpCode5xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerHttpCode5xxCountAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.isOwnedResource"></a>

```typescript
import { ApplicationLoadBalancerHttpCode5xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerHttpCode5xxCountAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.isResource"></a>

```typescript
import { ApplicationLoadBalancerHttpCode5xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerHttpCode5xxCountAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.fromAlarmArn"></a>

```typescript
import { ApplicationLoadBalancerHttpCode5xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerHttpCode5xxCountAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.fromAlarmName"></a>

```typescript
import { ApplicationLoadBalancerHttpCode5xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerHttpCode5xxCountAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm <a name="ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm"></a>

This alarm is used to detect when the targets are generating 5XX errors.

A high number of 5XX errors can indicate issues with the application or backend services.

The alarm is triggered when the number of 5XX errors from targets is greater than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.Initializer"></a>

```typescript
import { ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm(scope: IConstruct, id: string, props: ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps">ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps">ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.isConstruct"></a>

```typescript
import { ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.isOwnedResource"></a>

```typescript
import { ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.isResource"></a>

```typescript
import { ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.fromAlarmArn"></a>

```typescript
import { ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.fromAlarmName"></a>

```typescript
import { ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ApplicationLoadBalancerRecommendedAlarms <a name="ApplicationLoadBalancerRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms"></a>

A construct that creates the recommended alarms for an ApplicationLoadBalancer.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.Initializer"></a>

```typescript
import { ApplicationLoadBalancerRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApplicationLoadBalancerRecommendedAlarms(scope: Construct, id: string, props: ApplicationLoadBalancerRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps">ApplicationLoadBalancerRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps">ApplicationLoadBalancerRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.isConstruct"></a>

```typescript
import { ApplicationLoadBalancerRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.property.alarmHttpCode4xxCount">alarmHttpCode4xxCount</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm">ApplicationLoadBalancerHttpCode4xxCountAlarm</a></code> | The HTTPCode_ELB_4XX_Count alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.property.alarmHttpCode5xxCount">alarmHttpCode5xxCount</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm">ApplicationLoadBalancerHttpCode5xxCountAlarm</a></code> | The HTTPCode_ELB_5XX_Count alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.property.alarmHttpCodeTarget5xxCount">alarmHttpCodeTarget5xxCount</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm">ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm</a></code> | The HTTPCode_Target_5XX_Count alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.property.alarmRejectedConnectionCount">alarmRejectedConnectionCount</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm">ApplicationLoadBalancerRejectedConnectionCountAlarm</a></code> | The RejectedConnectionCount alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmHttpCode4xxCount`<sup>Optional</sup> <a name="alarmHttpCode4xxCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.property.alarmHttpCode4xxCount"></a>

```typescript
public readonly alarmHttpCode4xxCount: ApplicationLoadBalancerHttpCode4xxCountAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarm">ApplicationLoadBalancerHttpCode4xxCountAlarm</a>

The HTTPCode_ELB_4XX_Count alarm.

---

##### `alarmHttpCode5xxCount`<sup>Optional</sup> <a name="alarmHttpCode5xxCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.property.alarmHttpCode5xxCount"></a>

```typescript
public readonly alarmHttpCode5xxCount: ApplicationLoadBalancerHttpCode5xxCountAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarm">ApplicationLoadBalancerHttpCode5xxCountAlarm</a>

The HTTPCode_ELB_5XX_Count alarm.

---

##### `alarmHttpCodeTarget5xxCount`<sup>Optional</sup> <a name="alarmHttpCodeTarget5xxCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.property.alarmHttpCodeTarget5xxCount"></a>

```typescript
public readonly alarmHttpCodeTarget5xxCount: ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm">ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm</a>

The HTTPCode_Target_5XX_Count alarm.

---

##### `alarmRejectedConnectionCount`<sup>Optional</sup> <a name="alarmRejectedConnectionCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarms.property.alarmRejectedConnectionCount"></a>

```typescript
public readonly alarmRejectedConnectionCount: ApplicationLoadBalancerRejectedConnectionCountAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm">ApplicationLoadBalancerRejectedConnectionCountAlarm</a>

The RejectedConnectionCount alarm.

---


### ApplicationLoadBalancerRejectedConnectionCountAlarm <a name="ApplicationLoadBalancerRejectedConnectionCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm"></a>

This alarm is used to detect when the load balancer is rejecting connections.

Rejected connections can indicate that the load balancer has reached its maximum connection limit.

The alarm is triggered when the number of rejected connections is greater than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.Initializer"></a>

```typescript
import { ApplicationLoadBalancerRejectedConnectionCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApplicationLoadBalancerRejectedConnectionCountAlarm(scope: IConstruct, id: string, props: ApplicationLoadBalancerRejectedConnectionCountAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps">ApplicationLoadBalancerRejectedConnectionCountAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps">ApplicationLoadBalancerRejectedConnectionCountAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.isConstruct"></a>

```typescript
import { ApplicationLoadBalancerRejectedConnectionCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerRejectedConnectionCountAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.isOwnedResource"></a>

```typescript
import { ApplicationLoadBalancerRejectedConnectionCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerRejectedConnectionCountAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.isResource"></a>

```typescript
import { ApplicationLoadBalancerRejectedConnectionCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerRejectedConnectionCountAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.fromAlarmArn"></a>

```typescript
import { ApplicationLoadBalancerRejectedConnectionCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerRejectedConnectionCountAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.fromAlarmName"></a>

```typescript
import { ApplicationLoadBalancerRejectedConnectionCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationLoadBalancerRejectedConnectionCountAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ApplicationTargetGroup <a name="ApplicationTargetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup"></a>

An extension for the ApplicationTargetGroup construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.Initializer"></a>

```typescript
import { ApplicationTargetGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApplicationTargetGroup(scope: Construct, id: string, props: ApplicationTargetGroupProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroupProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroupProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.configureHealthCheck">configureHealthCheck</a></code> | Set/replace the target group's health check. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.setAttribute">setAttribute</a></code> | Set a non-standard attribute on the target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.addTarget">addTarget</a></code> | Add a load balancing target to this target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.enableCookieStickiness">enableCookieStickiness</a></code> | Enable sticky routing via a cookie to members of this target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metric">metric</a></code> | Return the given named metric for this Application Load Balancer Target Group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricHealthyHostCount">metricHealthyHostCount</a></code> | The number of healthy hosts in the target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricHttpCodeTarget">metricHttpCodeTarget</a></code> | The number of HTTP 2xx/3xx/4xx/5xx response codes generated by all targets in this target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricIpv6RequestCount">metricIpv6RequestCount</a></code> | The number of IPv6 requests received by the target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricRequestCount">metricRequestCount</a></code> | The number of requests processed over IPv4 and IPv6. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricRequestCountPerTarget">metricRequestCountPerTarget</a></code> | The average number of requests received by each target in a target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricTargetConnectionErrorCount">metricTargetConnectionErrorCount</a></code> | The number of connections that were not successfully established between the load balancer and target. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricTargetResponseTime">metricTargetResponseTime</a></code> | The time elapsed, in seconds, after the request leaves the load balancer until a response from the target is received. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricTargetTLSNegotiationErrorCount">metricTargetTLSNegotiationErrorCount</a></code> | The number of TLS connections initiated by the load balancer that did not establish a session with the target. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricUnhealthyHostCount">metricUnhealthyHostCount</a></code> | The number of unhealthy hosts in the target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.registerConnectable">registerConnectable</a></code> | Register a connectable as a member of this target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.registerListener">registerListener</a></code> | Register a listener that is load balancing to this target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.alarmHealthyHostCount">alarmHealthyHostCount</a></code> | Creates an alarm that monitors the healthy host count for the ApplicationTargetGroup. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.alarmUnHealthyHostCount">alarmUnHealthyHostCount</a></code> | Creates an alarm that monitors the unhealthy host count for the ApplicationTargetGroup. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the ApplicationTargetGroup. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

##### `configureHealthCheck` <a name="configureHealthCheck" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.configureHealthCheck"></a>

```typescript
public configureHealthCheck(healthCheck: HealthCheck): void
```

Set/replace the target group's health check.

###### `healthCheck`<sup>Required</sup> <a name="healthCheck" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.configureHealthCheck.parameter.healthCheck"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.HealthCheck

---

##### `setAttribute` <a name="setAttribute" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.setAttribute"></a>

```typescript
public setAttribute(key: string, value?: string): void
```

Set a non-standard attribute on the target group.

> [https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes)

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.setAttribute.parameter.key"></a>

- *Type:* string

---

###### `value`<sup>Optional</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.setAttribute.parameter.value"></a>

- *Type:* string

---

##### `addTarget` <a name="addTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.addTarget"></a>

```typescript
public addTarget(targets: ...IApplicationLoadBalancerTarget[]): void
```

Add a load balancing target to this target group.

###### `targets`<sup>Required</sup> <a name="targets" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.addTarget.parameter.targets"></a>

- *Type:* ...aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancerTarget[]

---

##### `enableCookieStickiness` <a name="enableCookieStickiness" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.enableCookieStickiness"></a>

```typescript
public enableCookieStickiness(duration: Duration, cookieName?: string): void
```

Enable sticky routing via a cookie to members of this target group.

Note: If the `cookieName` parameter is set, application-based stickiness will be applied,
otherwise it defaults to duration-based stickiness attributes (`lb_cookie`).

> [https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html)

###### `duration`<sup>Required</sup> <a name="duration" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.enableCookieStickiness.parameter.duration"></a>

- *Type:* aws-cdk-lib.Duration

---

###### `cookieName`<sup>Optional</sup> <a name="cookieName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.enableCookieStickiness.parameter.cookieName"></a>

- *Type:* string

---

##### `metric` <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metric"></a>

```typescript
public metric(metricName: string, props?: MetricOptions): Metric
```

Return the given named metric for this Application Load Balancer Target Group.

Returns the metric for this target group from the point of view of the first
load balancer load balancing to it. If you have multiple load balancers load
sending traffic to the same target group, you will have to override the dimensions
on this metric.

###### `metricName`<sup>Required</sup> <a name="metricName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metric.parameter.metricName"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metric.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricHealthyHostCount`~~ <a name="metricHealthyHostCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricHealthyHostCount"></a>

```typescript
public metricHealthyHostCount(props?: MetricOptions): Metric
```

The number of healthy hosts in the target group.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricHealthyHostCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricHttpCodeTarget`~~ <a name="metricHttpCodeTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricHttpCodeTarget"></a>

```typescript
public metricHttpCodeTarget(code: HttpCodeTarget, props?: MetricOptions): Metric
```

The number of HTTP 2xx/3xx/4xx/5xx response codes generated by all targets in this target group.

This does not include any response codes generated by the load balancer.

###### `code`<sup>Required</sup> <a name="code" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricHttpCodeTarget.parameter.code"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.HttpCodeTarget

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricHttpCodeTarget.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricIpv6RequestCount`~~ <a name="metricIpv6RequestCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricIpv6RequestCount"></a>

```typescript
public metricIpv6RequestCount(props?: MetricOptions): Metric
```

The number of IPv6 requests received by the target group.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricIpv6RequestCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricRequestCount`~~ <a name="metricRequestCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricRequestCount"></a>

```typescript
public metricRequestCount(props?: MetricOptions): Metric
```

The number of requests processed over IPv4 and IPv6.

This count includes only the requests with a response generated by a target of the load balancer.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricRequestCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricRequestCountPerTarget`~~ <a name="metricRequestCountPerTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricRequestCountPerTarget"></a>

```typescript
public metricRequestCountPerTarget(props?: MetricOptions): Metric
```

The average number of requests received by each target in a target group.

The only valid statistic is Sum. Note that this represents the average not the sum.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricRequestCountPerTarget.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricTargetConnectionErrorCount`~~ <a name="metricTargetConnectionErrorCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricTargetConnectionErrorCount"></a>

```typescript
public metricTargetConnectionErrorCount(props?: MetricOptions): Metric
```

The number of connections that were not successfully established between the load balancer and target.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricTargetConnectionErrorCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricTargetResponseTime`~~ <a name="metricTargetResponseTime" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricTargetResponseTime"></a>

```typescript
public metricTargetResponseTime(props?: MetricOptions): Metric
```

The time elapsed, in seconds, after the request leaves the load balancer until a response from the target is received.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricTargetResponseTime.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricTargetTLSNegotiationErrorCount`~~ <a name="metricTargetTLSNegotiationErrorCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricTargetTLSNegotiationErrorCount"></a>

```typescript
public metricTargetTLSNegotiationErrorCount(props?: MetricOptions): Metric
```

The number of TLS connections initiated by the load balancer that did not establish a session with the target.

Possible causes include a mismatch of ciphers or protocols.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricTargetTLSNegotiationErrorCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricUnhealthyHostCount`~~ <a name="metricUnhealthyHostCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricUnhealthyHostCount"></a>

```typescript
public metricUnhealthyHostCount(props?: MetricOptions): Metric
```

The number of unhealthy hosts in the target group.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.metricUnhealthyHostCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `registerConnectable` <a name="registerConnectable" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.registerConnectable"></a>

```typescript
public registerConnectable(connectable: IConnectable, portRange?: Port): void
```

Register a connectable as a member of this target group.

Don't call this directly. It will be called by load balancing targets.

###### `connectable`<sup>Required</sup> <a name="connectable" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.registerConnectable.parameter.connectable"></a>

- *Type:* aws-cdk-lib.aws_ec2.IConnectable

---

###### `portRange`<sup>Optional</sup> <a name="portRange" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.registerConnectable.parameter.portRange"></a>

- *Type:* aws-cdk-lib.aws_ec2.Port

---

##### `registerListener` <a name="registerListener" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.registerListener"></a>

```typescript
public registerListener(listener: IApplicationListener, associatingConstruct?: IConstruct): void
```

Register a listener that is load balancing to this target group.

Don't call this directly. It will be called by listeners.

###### `listener`<sup>Required</sup> <a name="listener" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.registerListener.parameter.listener"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationListener

---

###### `associatingConstruct`<sup>Optional</sup> <a name="associatingConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.registerListener.parameter.associatingConstruct"></a>

- *Type:* constructs.IConstruct

---

##### `alarmHealthyHostCount` <a name="alarmHealthyHostCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.alarmHealthyHostCount"></a>

```typescript
public alarmHealthyHostCount(props?: ApplicationTargetGroupHealthyHostCountAlarmConfig): ApplicationTargetGroupHealthyHostCountAlarm
```

Creates an alarm that monitors the healthy host count for the ApplicationTargetGroup.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.alarmHealthyHostCount.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig">ApplicationTargetGroupHealthyHostCountAlarmConfig</a>

---

##### `alarmUnHealthyHostCount` <a name="alarmUnHealthyHostCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.alarmUnHealthyHostCount"></a>

```typescript
public alarmUnHealthyHostCount(props?: ApplicationTargetGroupUnHealthyHostCountAlarmConfig): ApplicationTargetGroupUnHealthyHostCountAlarm
```

Creates an alarm that monitors the unhealthy host count for the ApplicationTargetGroup.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.alarmUnHealthyHostCount.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig">ApplicationTargetGroupUnHealthyHostCountAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: ApplicationTargetGroupRecommendedAlarmsConfig): ApplicationTargetGroupRecommendedAlarms
```

Creates the recommended alarms for the ApplicationTargetGroup.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig">ApplicationTargetGroupRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.fromTargetGroupAttributes">fromTargetGroupAttributes</a></code> | Import an existing target group. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.isConstruct"></a>

```typescript
import { ApplicationTargetGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationTargetGroup.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `fromTargetGroupAttributes` <a name="fromTargetGroupAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.fromTargetGroupAttributes"></a>

```typescript
import { ApplicationTargetGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationTargetGroup.fromTargetGroupAttributes(scope: Construct, id: string, attrs: TargetGroupAttributes)
```

Import an existing target group.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.fromTargetGroupAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.fromTargetGroupAttributes.parameter.id"></a>

- *Type:* string

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.fromTargetGroupAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.TargetGroupAttributes

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.firstLoadBalancerFullName">firstLoadBalancerFullName</a></code> | <code>string</code> | Full name of first load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.loadBalancerArns">loadBalancerArns</a></code> | <code>string</code> | A token representing a list of ARNs of the load balancers that route traffic to this target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.loadBalancerAttached">loadBalancerAttached</a></code> | <code>constructs.IDependable</code> | List of constructs that need to be depended on to ensure the TargetGroup is associated to a load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.targetGroupArn">targetGroupArn</a></code> | <code>string</code> | The ARN of the target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.targetGroupFullName">targetGroupFullName</a></code> | <code>string</code> | The full name of the target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.targetGroupLoadBalancerArns">targetGroupLoadBalancerArns</a></code> | <code>string[]</code> | ARNs of load balancers load balancing to this TargetGroup. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.targetGroupName">targetGroupName</a></code> | <code>string</code> | The name of the target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.targetGroupRef">targetGroupRef</a></code> | <code>aws-cdk-lib.interfaces.aws_elasticloadbalancingv2.TargetGroupReference</code> | A reference to this target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.healthCheck">healthCheck</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.HealthCheck</code> | Health check for the members of this target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.metrics">metrics</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationTargetGroupMetrics</code> | All metrics available for this target group. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

---

##### `firstLoadBalancerFullName`<sup>Required</sup> <a name="firstLoadBalancerFullName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.firstLoadBalancerFullName"></a>

```typescript
public readonly firstLoadBalancerFullName: string;
```

- *Type:* string

Full name of first load balancer.

---

##### `loadBalancerArns`<sup>Required</sup> <a name="loadBalancerArns" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.loadBalancerArns"></a>

```typescript
public readonly loadBalancerArns: string;
```

- *Type:* string

A token representing a list of ARNs of the load balancers that route traffic to this target group.

---

##### `loadBalancerAttached`<sup>Required</sup> <a name="loadBalancerAttached" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.loadBalancerAttached"></a>

```typescript
public readonly loadBalancerAttached: IDependable;
```

- *Type:* constructs.IDependable

List of constructs that need to be depended on to ensure the TargetGroup is associated to a load balancer.

---

##### `targetGroupArn`<sup>Required</sup> <a name="targetGroupArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.targetGroupArn"></a>

```typescript
public readonly targetGroupArn: string;
```

- *Type:* string

The ARN of the target group.

---

##### `targetGroupFullName`<sup>Required</sup> <a name="targetGroupFullName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.targetGroupFullName"></a>

```typescript
public readonly targetGroupFullName: string;
```

- *Type:* string

The full name of the target group.

---

##### `targetGroupLoadBalancerArns`<sup>Required</sup> <a name="targetGroupLoadBalancerArns" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.targetGroupLoadBalancerArns"></a>

```typescript
public readonly targetGroupLoadBalancerArns: string[];
```

- *Type:* string[]

ARNs of load balancers load balancing to this TargetGroup.

---

##### `targetGroupName`<sup>Required</sup> <a name="targetGroupName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.targetGroupName"></a>

```typescript
public readonly targetGroupName: string;
```

- *Type:* string

The name of the target group.

---

##### `targetGroupRef`<sup>Required</sup> <a name="targetGroupRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.targetGroupRef"></a>

```typescript
public readonly targetGroupRef: TargetGroupReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_elasticloadbalancingv2.TargetGroupReference

A reference to this target group.

---

##### `healthCheck`<sup>Required</sup> <a name="healthCheck" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.healthCheck"></a>

```typescript
public readonly healthCheck: HealthCheck;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.HealthCheck

Health check for the members of this target group.

---

##### `metrics`<sup>Required</sup> <a name="metrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.metrics"></a>

```typescript
public readonly metrics: IApplicationTargetGroupMetrics;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationTargetGroupMetrics

All metrics available for this target group.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroup.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ApplicationTargetGroupHealthyHostCountAlarm <a name="ApplicationTargetGroupHealthyHostCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm"></a>

This alarm is used to detect when the number of healthy hosts in the target group falls below the threshold.

A low number of healthy hosts can indicate service availability issues.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.Initializer"></a>

```typescript
import { ApplicationTargetGroupHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApplicationTargetGroupHealthyHostCountAlarm(scope: IConstruct, id: string, props: ApplicationTargetGroupHealthyHostCountAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps">ApplicationTargetGroupHealthyHostCountAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps">ApplicationTargetGroupHealthyHostCountAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.isConstruct"></a>

```typescript
import { ApplicationTargetGroupHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationTargetGroupHealthyHostCountAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.isOwnedResource"></a>

```typescript
import { ApplicationTargetGroupHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationTargetGroupHealthyHostCountAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.isResource"></a>

```typescript
import { ApplicationTargetGroupHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationTargetGroupHealthyHostCountAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.fromAlarmArn"></a>

```typescript
import { ApplicationTargetGroupHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationTargetGroupHealthyHostCountAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.fromAlarmName"></a>

```typescript
import { ApplicationTargetGroupHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationTargetGroupHealthyHostCountAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ApplicationTargetGroupRecommendedAlarms <a name="ApplicationTargetGroupRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms"></a>

A construct that creates the recommended alarms for an ApplicationTargetGroup.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.Initializer"></a>

```typescript
import { ApplicationTargetGroupRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApplicationTargetGroupRecommendedAlarms(scope: Construct, id: string, props: ApplicationTargetGroupRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps">ApplicationTargetGroupRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps">ApplicationTargetGroupRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.isConstruct"></a>

```typescript
import { ApplicationTargetGroupRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationTargetGroupRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.property.alarmHealthyHostCount">alarmHealthyHostCount</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm">ApplicationTargetGroupHealthyHostCountAlarm</a></code> | The HealthyHostCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.property.alarmUnHealthyHostCount">alarmUnHealthyHostCount</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm">ApplicationTargetGroupUnHealthyHostCountAlarm</a></code> | The UnHealthyHostCount alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmHealthyHostCount`<sup>Optional</sup> <a name="alarmHealthyHostCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.property.alarmHealthyHostCount"></a>

```typescript
public readonly alarmHealthyHostCount: ApplicationTargetGroupHealthyHostCountAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarm">ApplicationTargetGroupHealthyHostCountAlarm</a>

The HealthyHostCount alarm.

---

##### `alarmUnHealthyHostCount`<sup>Optional</sup> <a name="alarmUnHealthyHostCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarms.property.alarmUnHealthyHostCount"></a>

```typescript
public readonly alarmUnHealthyHostCount: ApplicationTargetGroupUnHealthyHostCountAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm">ApplicationTargetGroupUnHealthyHostCountAlarm</a>

The UnHealthyHostCount alarm.

---


### ApplicationTargetGroupUnHealthyHostCountAlarm <a name="ApplicationTargetGroupUnHealthyHostCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm"></a>

This alarm is used to detect when the number of unhealthy hosts in the target group exceeds the threshold.

A high number of unhealthy hosts can indicate service health issues.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.Initializer"></a>

```typescript
import { ApplicationTargetGroupUnHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApplicationTargetGroupUnHealthyHostCountAlarm(scope: IConstruct, id: string, props: ApplicationTargetGroupUnHealthyHostCountAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps">ApplicationTargetGroupUnHealthyHostCountAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps">ApplicationTargetGroupUnHealthyHostCountAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.isConstruct"></a>

```typescript
import { ApplicationTargetGroupUnHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationTargetGroupUnHealthyHostCountAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.isOwnedResource"></a>

```typescript
import { ApplicationTargetGroupUnHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationTargetGroupUnHealthyHostCountAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.isResource"></a>

```typescript
import { ApplicationTargetGroupUnHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationTargetGroupUnHealthyHostCountAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.fromAlarmArn"></a>

```typescript
import { ApplicationTargetGroupUnHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationTargetGroupUnHealthyHostCountAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.fromAlarmName"></a>

```typescript
import { ApplicationTargetGroupUnHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ApplicationTargetGroupUnHealthyHostCountAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### AutoScalingGroup <a name="AutoScalingGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup"></a>

An extension for the AutoScalingGroup construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.Initializer"></a>

```typescript
import { AutoScalingGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new AutoScalingGroup(scope: Construct, id: string, props: AutoScalingGroupProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_autoscaling.AutoScalingGroupProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_autoscaling.AutoScalingGroupProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addLifecycleHook">addLifecycleHook</a></code> | Send a message to either an SQS queue or SNS topic when instances launch or terminate. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addSecurityGroup">addSecurityGroup</a></code> | Add the security group to all instances via the launch template security groups array. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addToRolePolicy">addToRolePolicy</a></code> | Adds a statement to the IAM role assumed by instances of this fleet. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addUserData">addUserData</a></code> | Add command to the startup script of fleet instances. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addWarmPool">addWarmPool</a></code> | Add a pool of pre-initialized EC2 instances that sits alongside an Auto Scaling group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.applyCloudFormationInit">applyCloudFormationInit</a></code> | Use a CloudFormation Init configuration at instance startup. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.areNewInstancesProtectedFromScaleIn">areNewInstancesProtectedFromScaleIn</a></code> | Returns `true` if newly-launched instances are protected from scale-in. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.attachToApplicationTargetGroup">attachToApplicationTargetGroup</a></code> | Attach to ELBv2 Application Target Group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.attachToClassicLB">attachToClassicLB</a></code> | Attach to a classic load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.attachToNetworkTargetGroup">attachToNetworkTargetGroup</a></code> | Attach to ELBv2 Application Target Group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.protectNewInstancesFromScaleIn">protectNewInstancesFromScaleIn</a></code> | Ensures newly-launched instances are protected from scale-in. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnCpuUtilization">scaleOnCpuUtilization</a></code> | Scale out or in to achieve a target CPU utilization. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnIncomingBytes">scaleOnIncomingBytes</a></code> | Scale out or in to achieve a target network ingress rate. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnMetric">scaleOnMetric</a></code> | Scale out or in, in response to a metric. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnOutgoingBytes">scaleOnOutgoingBytes</a></code> | Scale out or in to achieve a target network egress rate. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnRequestCount">scaleOnRequestCount</a></code> | Scale out or in to achieve a target request handling rate. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnSchedule">scaleOnSchedule</a></code> | Scale out or in based on time. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleToTrackMetric">scaleToTrackMetric</a></code> | Scale out or in in order to keep a metric around a target value. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.alarmGroupInServiceCapacity">alarmGroupInServiceCapacity</a></code> | Creates an alarm that monitors the GroupInServiceCapacity for the EC2 autoScalingGroup. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the EC2 AutoScalingGroup. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addLifecycleHook` <a name="addLifecycleHook" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addLifecycleHook"></a>

```typescript
public addLifecycleHook(id: string, props: BasicLifecycleHookProps): LifecycleHook
```

Send a message to either an SQS queue or SNS topic when instances launch or terminate.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addLifecycleHook.parameter.id"></a>

- *Type:* string

---

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addLifecycleHook.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_autoscaling.BasicLifecycleHookProps

---

##### `addSecurityGroup` <a name="addSecurityGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addSecurityGroup"></a>

```typescript
public addSecurityGroup(securityGroup: ISecurityGroup): void
```

Add the security group to all instances via the launch template security groups array.

###### `securityGroup`<sup>Required</sup> <a name="securityGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addSecurityGroup.parameter.securityGroup"></a>

- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup

: The security group to add.

---

##### `addToRolePolicy` <a name="addToRolePolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addToRolePolicy"></a>

```typescript
public addToRolePolicy(statement: PolicyStatement): void
```

Adds a statement to the IAM role assumed by instances of this fleet.

###### `statement`<sup>Required</sup> <a name="statement" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addToRolePolicy.parameter.statement"></a>

- *Type:* aws-cdk-lib.aws_iam.PolicyStatement

---

##### `addUserData` <a name="addUserData" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addUserData"></a>

```typescript
public addUserData(commands: ...string[]): void
```

Add command to the startup script of fleet instances.

The command must be in the scripting language supported by the fleet's OS (i.e. Linux/Windows).
Does nothing for imported ASGs.

###### `commands`<sup>Required</sup> <a name="commands" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addUserData.parameter.commands"></a>

- *Type:* ...string[]

---

##### `addWarmPool` <a name="addWarmPool" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addWarmPool"></a>

```typescript
public addWarmPool(options?: WarmPoolOptions): WarmPool
```

Add a pool of pre-initialized EC2 instances that sits alongside an Auto Scaling group.

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.addWarmPool.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_autoscaling.WarmPoolOptions

---

##### `applyCloudFormationInit` <a name="applyCloudFormationInit" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.applyCloudFormationInit"></a>

```typescript
public applyCloudFormationInit(init: CloudFormationInit, options?: ApplyCloudFormationInitOptions): void
```

Use a CloudFormation Init configuration at instance startup.

This does the following:

- Attaches the CloudFormation Init metadata to the AutoScalingGroup resource.
- Add commands to the UserData to run `cfn-init` and `cfn-signal`.
- Update the instance's CreationPolicy to wait for `cfn-init` to finish
  before reporting success.

###### `init`<sup>Required</sup> <a name="init" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.applyCloudFormationInit.parameter.init"></a>

- *Type:* aws-cdk-lib.aws_ec2.CloudFormationInit

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.applyCloudFormationInit.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_autoscaling.ApplyCloudFormationInitOptions

---

##### `areNewInstancesProtectedFromScaleIn` <a name="areNewInstancesProtectedFromScaleIn" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.areNewInstancesProtectedFromScaleIn"></a>

```typescript
public areNewInstancesProtectedFromScaleIn(): boolean
```

Returns `true` if newly-launched instances are protected from scale-in.

##### `attachToApplicationTargetGroup` <a name="attachToApplicationTargetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.attachToApplicationTargetGroup"></a>

```typescript
public attachToApplicationTargetGroup(targetGroup: IApplicationTargetGroup): LoadBalancerTargetProps
```

Attach to ELBv2 Application Target Group.

###### `targetGroup`<sup>Required</sup> <a name="targetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.attachToApplicationTargetGroup.parameter.targetGroup"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationTargetGroup

---

##### `attachToClassicLB` <a name="attachToClassicLB" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.attachToClassicLB"></a>

```typescript
public attachToClassicLB(loadBalancer: LoadBalancer): void
```

Attach to a classic load balancer.

###### `loadBalancer`<sup>Required</sup> <a name="loadBalancer" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.attachToClassicLB.parameter.loadBalancer"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancing.LoadBalancer

---

##### `attachToNetworkTargetGroup` <a name="attachToNetworkTargetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.attachToNetworkTargetGroup"></a>

```typescript
public attachToNetworkTargetGroup(targetGroup: INetworkTargetGroup): LoadBalancerTargetProps
```

Attach to ELBv2 Application Target Group.

###### `targetGroup`<sup>Required</sup> <a name="targetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.attachToNetworkTargetGroup.parameter.targetGroup"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.INetworkTargetGroup

---

##### `protectNewInstancesFromScaleIn` <a name="protectNewInstancesFromScaleIn" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.protectNewInstancesFromScaleIn"></a>

```typescript
public protectNewInstancesFromScaleIn(): void
```

Ensures newly-launched instances are protected from scale-in.

##### `scaleOnCpuUtilization` <a name="scaleOnCpuUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnCpuUtilization"></a>

```typescript
public scaleOnCpuUtilization(id: string, props: CpuUtilizationScalingProps): TargetTrackingScalingPolicy
```

Scale out or in to achieve a target CPU utilization.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnCpuUtilization.parameter.id"></a>

- *Type:* string

---

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnCpuUtilization.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_autoscaling.CpuUtilizationScalingProps

---

##### `scaleOnIncomingBytes` <a name="scaleOnIncomingBytes" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnIncomingBytes"></a>

```typescript
public scaleOnIncomingBytes(id: string, props: NetworkUtilizationScalingProps): TargetTrackingScalingPolicy
```

Scale out or in to achieve a target network ingress rate.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnIncomingBytes.parameter.id"></a>

- *Type:* string

---

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnIncomingBytes.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_autoscaling.NetworkUtilizationScalingProps

---

##### `scaleOnMetric` <a name="scaleOnMetric" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnMetric"></a>

```typescript
public scaleOnMetric(id: string, props: BasicStepScalingPolicyProps): StepScalingPolicy
```

Scale out or in, in response to a metric.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnMetric.parameter.id"></a>

- *Type:* string

---

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnMetric.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_autoscaling.BasicStepScalingPolicyProps

---

##### `scaleOnOutgoingBytes` <a name="scaleOnOutgoingBytes" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnOutgoingBytes"></a>

```typescript
public scaleOnOutgoingBytes(id: string, props: NetworkUtilizationScalingProps): TargetTrackingScalingPolicy
```

Scale out or in to achieve a target network egress rate.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnOutgoingBytes.parameter.id"></a>

- *Type:* string

---

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnOutgoingBytes.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_autoscaling.NetworkUtilizationScalingProps

---

##### `scaleOnRequestCount` <a name="scaleOnRequestCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnRequestCount"></a>

```typescript
public scaleOnRequestCount(id: string, props: RequestCountScalingProps): TargetTrackingScalingPolicy
```

Scale out or in to achieve a target request handling rate.

The AutoScalingGroup must have been attached to an Application Load Balancer
in order to be able to call this.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnRequestCount.parameter.id"></a>

- *Type:* string

---

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnRequestCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_autoscaling.RequestCountScalingProps

---

##### `scaleOnSchedule` <a name="scaleOnSchedule" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnSchedule"></a>

```typescript
public scaleOnSchedule(id: string, props: BasicScheduledActionProps): ScheduledAction
```

Scale out or in based on time.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnSchedule.parameter.id"></a>

- *Type:* string

---

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleOnSchedule.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_autoscaling.BasicScheduledActionProps

---

##### `scaleToTrackMetric` <a name="scaleToTrackMetric" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleToTrackMetric"></a>

```typescript
public scaleToTrackMetric(id: string, props: MetricTargetTrackingProps): TargetTrackingScalingPolicy
```

Scale out or in in order to keep a metric around a target value.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleToTrackMetric.parameter.id"></a>

- *Type:* string

---

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.scaleToTrackMetric.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_autoscaling.MetricTargetTrackingProps

---

##### `alarmGroupInServiceCapacity` <a name="alarmGroupInServiceCapacity" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.alarmGroupInServiceCapacity"></a>

```typescript
public alarmGroupInServiceCapacity(props: AutoScalingGroupInServiceCapacityAlarmConfig): AutoScalingGroupGroupInServiceCapacityAlarm
```

Creates an alarm that monitors the GroupInServiceCapacity for the EC2 autoScalingGroup.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.alarmGroupInServiceCapacity.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig">AutoScalingGroupInServiceCapacityAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: AutoScalingGroupRecommendedAlarmsConfig): AutoScalingGroupRecommendedAlarms
```

Creates the recommended alarms for the EC2 AutoScalingGroup.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#AutoScaling](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#AutoScaling)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig">AutoScalingGroupRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.fromAutoScalingGroupName">fromAutoScalingGroupName</a></code> | *No description.* |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.isConstruct"></a>

```typescript
import { AutoScalingGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

AutoScalingGroup.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.isOwnedResource"></a>

```typescript
import { AutoScalingGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

AutoScalingGroup.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.isResource"></a>

```typescript
import { AutoScalingGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

AutoScalingGroup.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAutoScalingGroupName` <a name="fromAutoScalingGroupName" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.fromAutoScalingGroupName"></a>

```typescript
import { AutoScalingGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

AutoScalingGroup.fromAutoScalingGroupName(scope: Construct, id: string, autoScalingGroupName: string)
```

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.fromAutoScalingGroupName.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.fromAutoScalingGroupName.parameter.id"></a>

- *Type:* string

---

###### `autoScalingGroupName`<sup>Required</sup> <a name="autoScalingGroupName" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.fromAutoScalingGroupName.parameter.autoScalingGroupName"></a>

- *Type:* string

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.autoScalingGroupArn">autoScalingGroupArn</a></code> | <code>string</code> | Arn of the AutoScalingGroup. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.autoScalingGroupName">autoScalingGroupName</a></code> | <code>string</code> | Name of the AutoScalingGroup. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.autoScalingGroupRef">autoScalingGroupRef</a></code> | <code>aws-cdk-lib.interfaces.aws_autoscaling.AutoScalingGroupReference</code> | A reference to a AutoScalingGroup resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.connections">connections</a></code> | <code>aws-cdk-lib.aws_ec2.Connections</code> | The network connections associated with this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.grantPrincipal">grantPrincipal</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | The principal to grant permissions to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.osType">osType</a></code> | <code>aws-cdk-lib.aws_ec2.OperatingSystemType</code> | The type of OS instances of this fleet are running. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.role">role</a></code> | <code>aws-cdk-lib.aws_iam.IRole</code> | The IAM Role in the instance profile. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.userData">userData</a></code> | <code>aws-cdk-lib.aws_ec2.UserData</code> | The Base64-encoded user data to make available to the launched EC2 instances. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.maxInstanceLifetime">maxInstanceLifetime</a></code> | <code>aws-cdk-lib.Duration</code> | The maximum amount of time that an instance can be in service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.spotPrice">spotPrice</a></code> | <code>string</code> | The maximum spot price configured for the autoscaling group. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `autoScalingGroupArn`<sup>Required</sup> <a name="autoScalingGroupArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.autoScalingGroupArn"></a>

```typescript
public readonly autoScalingGroupArn: string;
```

- *Type:* string

Arn of the AutoScalingGroup.

---

##### `autoScalingGroupName`<sup>Required</sup> <a name="autoScalingGroupName" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.autoScalingGroupName"></a>

```typescript
public readonly autoScalingGroupName: string;
```

- *Type:* string

Name of the AutoScalingGroup.

---

##### `autoScalingGroupRef`<sup>Required</sup> <a name="autoScalingGroupRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.autoScalingGroupRef"></a>

```typescript
public readonly autoScalingGroupRef: AutoScalingGroupReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_autoscaling.AutoScalingGroupReference

A reference to a AutoScalingGroup resource.

---

##### `connections`<sup>Required</sup> <a name="connections" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.connections"></a>

```typescript
public readonly connections: Connections;
```

- *Type:* aws-cdk-lib.aws_ec2.Connections

The network connections associated with this resource.

---

##### `grantPrincipal`<sup>Required</sup> <a name="grantPrincipal" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.grantPrincipal"></a>

```typescript
public readonly grantPrincipal: IPrincipal;
```

- *Type:* aws-cdk-lib.aws_iam.IPrincipal

The principal to grant permissions to.

---

##### `osType`<sup>Required</sup> <a name="osType" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.osType"></a>

```typescript
public readonly osType: OperatingSystemType;
```

- *Type:* aws-cdk-lib.aws_ec2.OperatingSystemType

The type of OS instances of this fleet are running.

---

##### `role`<sup>Required</sup> <a name="role" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.role"></a>

```typescript
public readonly role: IRole;
```

- *Type:* aws-cdk-lib.aws_iam.IRole

The IAM Role in the instance profile.

---

##### `userData`<sup>Required</sup> <a name="userData" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.userData"></a>

```typescript
public readonly userData: UserData;
```

- *Type:* aws-cdk-lib.aws_ec2.UserData

The Base64-encoded user data to make available to the launched EC2 instances.

---

##### `maxInstanceLifetime`<sup>Optional</sup> <a name="maxInstanceLifetime" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.maxInstanceLifetime"></a>

```typescript
public readonly maxInstanceLifetime: Duration;
```

- *Type:* aws-cdk-lib.Duration

The maximum amount of time that an instance can be in service.

---

##### `spotPrice`<sup>Optional</sup> <a name="spotPrice" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.spotPrice"></a>

```typescript
public readonly spotPrice: string;
```

- *Type:* string

The maximum spot price configured for the autoscaling group.

`undefined`
indicates that this group uses on-demand capacity.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroup.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### AutoScalingGroupGroupInServiceCapacityAlarm <a name="AutoScalingGroupGroupInServiceCapacityAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm"></a>

This alarm helps to detect when the capacity in the group is below the desired capacity required for your workload.

To troubleshoot, check your scaling activities for launch failures and confirm that your desired capacity configuration
is correct.

The alarm is triggered when the capacity in the group is less than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.Initializer"></a>

```typescript
import { AutoScalingGroupGroupInServiceCapacityAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new AutoScalingGroupGroupInServiceCapacityAlarm(scope: IConstruct, id: string, props: AutoScalingGroupGroupInServiceCapacityAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps">AutoScalingGroupGroupInServiceCapacityAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps">AutoScalingGroupGroupInServiceCapacityAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.isConstruct"></a>

```typescript
import { AutoScalingGroupGroupInServiceCapacityAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

AutoScalingGroupGroupInServiceCapacityAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.isOwnedResource"></a>

```typescript
import { AutoScalingGroupGroupInServiceCapacityAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

AutoScalingGroupGroupInServiceCapacityAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.isResource"></a>

```typescript
import { AutoScalingGroupGroupInServiceCapacityAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

AutoScalingGroupGroupInServiceCapacityAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.fromAlarmArn"></a>

```typescript
import { AutoScalingGroupGroupInServiceCapacityAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

AutoScalingGroupGroupInServiceCapacityAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.fromAlarmName"></a>

```typescript
import { AutoScalingGroupGroupInServiceCapacityAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

AutoScalingGroupGroupInServiceCapacityAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### AutoScalingGroupRecommendedAlarms <a name="AutoScalingGroupRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms"></a>

A construct that creates the recommended alarms for an EC2 AutoScalingGroup.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#AutoScaling](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#AutoScaling)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.Initializer"></a>

```typescript
import { AutoScalingGroupRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new AutoScalingGroupRecommendedAlarms(scope: Construct, id: string, props: AutoScalingGroupRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps">AutoScalingGroupRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps">AutoScalingGroupRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.isConstruct"></a>

```typescript
import { AutoScalingGroupRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

AutoScalingGroupRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.property.alarmGroupInServiceCapacity">alarmGroupInServiceCapacity</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm">AutoScalingGroupGroupInServiceCapacityAlarm</a></code> | The GroupInServiceCapacity alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmGroupInServiceCapacity`<sup>Optional</sup> <a name="alarmGroupInServiceCapacity" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarms.property.alarmGroupInServiceCapacity"></a>

```typescript
public readonly alarmGroupInServiceCapacity: AutoScalingGroupGroupInServiceCapacityAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarm">AutoScalingGroupGroupInServiceCapacityAlarm</a>

The GroupInServiceCapacity alarm.

---


### Bucket <a name="Bucket" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket"></a>

An extension for the S3 Bucket construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.Initializer"></a>

```typescript
import { Bucket } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new Bucket(scope: Construct, id: string, props?: BucketProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_s3.BucketProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_s3.BucketProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addEventNotification">addEventNotification</a></code> | Adds a bucket notification event destination. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addObjectCreatedNotification">addObjectCreatedNotification</a></code> | Subscribes a destination to receive notifications when an object is created in the bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addObjectRemovedNotification">addObjectRemovedNotification</a></code> | Subscribes a destination to receive notifications when an object is removed from the bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addReplicationPolicy">addReplicationPolicy</a></code> | Function to add required permissions to the destination bucket for cross account replication. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addToResourcePolicy">addToResourcePolicy</a></code> | Adds a statement to the resource policy for a principal (i.e. account/role/service) to perform actions on this bucket and/or its contents. Use `bucketArn` and `arnForObjects(keys)` to obtain ARNs for this bucket or objects. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.arnForObjects">arnForObjects</a></code> | Returns an ARN that represents all objects within the bucket that match the key pattern specified. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.enableEventBridgeNotification">enableEventBridgeNotification</a></code> | Enables event bridge notification, causing all events below to be sent to EventBridge:. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantDelete">grantDelete</a></code> | Grants s3:DeleteObject* permission to an IAM principal for objects in this bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantOnKey">grantOnKey</a></code> | Gives permissions to a grantable entity to perform actions on the encryption key. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantPublicAccess">grantPublicAccess</a></code> | Allows unrestricted access to objects from this bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantPut">grantPut</a></code> | Grants s3:PutObject* and s3:Abort* permissions for this bucket to an IAM principal. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantPutAcl">grantPutAcl</a></code> | The use of this method is discouraged. Please use `grants.putAcl()` instead. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantRead">grantRead</a></code> | Grant read permissions for this bucket and its contents to an IAM principal (Role/Group/User). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantReadWrite">grantReadWrite</a></code> | The use of this method is discouraged. Please use `grants.readWrite()` instead. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantReplicationPermission">grantReplicationPermission</a></code> | Grant replication permission to a principal. This method allows the principal to perform replication operations on this bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantWrite">grantWrite</a></code> | The use of this method is discouraged. Please use `grants.write()` instead. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.onCloudTrailEvent">onCloudTrailEvent</a></code> | Define a CloudWatch event that triggers when something happens to this repository. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.onCloudTrailPutObject">onCloudTrailPutObject</a></code> | Defines an AWS CloudWatch event that triggers when an object is uploaded to the specified paths (keys) in this bucket using the PutObject API call. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.onCloudTrailWriteObject">onCloudTrailWriteObject</a></code> | Defines an AWS CloudWatch event that triggers when an object at the specified paths (keys) in this bucket are written to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.s3UrlForObject">s3UrlForObject</a></code> | The S3 URL of an S3 object. For example:. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.transferAccelerationUrlForObject">transferAccelerationUrlForObject</a></code> | The https Transfer Acceleration URL of an S3 object. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.urlForObject">urlForObject</a></code> | The https URL of an S3 object. Specify `regional: false` at the options for non-regional URLs. For example:. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.virtualHostedUrlForObject">virtualHostedUrlForObject</a></code> | The virtual hosted-style URL of an S3 object. Specify `regional: false` at the options for non-regional URL. For example:. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addCorsRule">addCorsRule</a></code> | Adds a cross-origin access configuration for objects in an Amazon S3 bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addInventory">addInventory</a></code> | Add an inventory configuration. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addLifecycleRule">addLifecycleRule</a></code> | Add a lifecycle rule to the bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addMetric">addMetric</a></code> | Adds a metrics configuration for the CloudWatch request metrics from the bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.alarm4xxErrors">alarm4xxErrors</a></code> | Creates an alarm that monitors the 4xx errors for the S3 bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.alarm5xxErrors">alarm5xxErrors</a></code> | Creates an alarm that monitors the 5xx errors for the S3 bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the S3 bucket. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addEventNotification` <a name="addEventNotification" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addEventNotification"></a>

```typescript
public addEventNotification(event: EventType, dest: IBucketNotificationDestination, filters: ...NotificationKeyFilter[]): void
```

Adds a bucket notification event destination.

> [https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)

*Example*

```typescript
   declare const myLambda: lambda.Function;
   const bucket = new s3.Bucket(this, 'MyBucket');
   const filter: s3.NotificationKeyFilter = { prefix: 'home/myusername/*' };
   bucket.addEventNotification(s3.EventType.OBJECT_CREATED, new s3n.LambdaDestination(myLambda), filter);
```


###### `event`<sup>Required</sup> <a name="event" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addEventNotification.parameter.event"></a>

- *Type:* aws-cdk-lib.aws_s3.EventType

The event to trigger the notification.

---

###### `dest`<sup>Required</sup> <a name="dest" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addEventNotification.parameter.dest"></a>

- *Type:* aws-cdk-lib.aws_s3.IBucketNotificationDestination

The notification destination (Lambda, SNS Topic or SQS Queue).

---

###### `filters`<sup>Required</sup> <a name="filters" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addEventNotification.parameter.filters"></a>

- *Type:* ...aws-cdk-lib.aws_s3.NotificationKeyFilter[]

S3 object key filter rules to determine which objects trigger this event.

Each filter must include a `prefix` and/or `suffix`
that will be matched against the s3 object key. Refer to the S3 Developer Guide
for details about allowed filter rules.

---

##### `addObjectCreatedNotification` <a name="addObjectCreatedNotification" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addObjectCreatedNotification"></a>

```typescript
public addObjectCreatedNotification(dest: IBucketNotificationDestination, filters: ...NotificationKeyFilter[]): void
```

Subscribes a destination to receive notifications when an object is created in the bucket.

This is identical to calling
`onEvent(EventType.OBJECT_CREATED)`.

###### `dest`<sup>Required</sup> <a name="dest" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addObjectCreatedNotification.parameter.dest"></a>

- *Type:* aws-cdk-lib.aws_s3.IBucketNotificationDestination

The notification destination (see onEvent).

---

###### `filters`<sup>Required</sup> <a name="filters" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addObjectCreatedNotification.parameter.filters"></a>

- *Type:* ...aws-cdk-lib.aws_s3.NotificationKeyFilter[]

Filters (see onEvent).

---

##### `addObjectRemovedNotification` <a name="addObjectRemovedNotification" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addObjectRemovedNotification"></a>

```typescript
public addObjectRemovedNotification(dest: IBucketNotificationDestination, filters: ...NotificationKeyFilter[]): void
```

Subscribes a destination to receive notifications when an object is removed from the bucket.

This is identical to calling
`onEvent(EventType.OBJECT_REMOVED)`.

###### `dest`<sup>Required</sup> <a name="dest" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addObjectRemovedNotification.parameter.dest"></a>

- *Type:* aws-cdk-lib.aws_s3.IBucketNotificationDestination

The notification destination (see onEvent).

---

###### `filters`<sup>Required</sup> <a name="filters" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addObjectRemovedNotification.parameter.filters"></a>

- *Type:* ...aws-cdk-lib.aws_s3.NotificationKeyFilter[]

Filters (see onEvent).

---

##### `addReplicationPolicy` <a name="addReplicationPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addReplicationPolicy"></a>

```typescript
public addReplicationPolicy(roleArn: string, accessControlTransition?: boolean, account?: string): void
```

Function to add required permissions to the destination bucket for cross account replication.

These permissions will be added as a resource based policy on the bucket

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accesscontroltranslation.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accesscontroltranslation.html)

###### `roleArn`<sup>Required</sup> <a name="roleArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addReplicationPolicy.parameter.roleArn"></a>

- *Type:* string

---

###### `accessControlTransition`<sup>Optional</sup> <a name="accessControlTransition" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addReplicationPolicy.parameter.accessControlTransition"></a>

- *Type:* boolean

---

###### `account`<sup>Optional</sup> <a name="account" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addReplicationPolicy.parameter.account"></a>

- *Type:* string

---

##### `addToResourcePolicy` <a name="addToResourcePolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addToResourcePolicy"></a>

```typescript
public addToResourcePolicy(permission: PolicyStatement): AddToResourcePolicyResult
```

Adds a statement to the resource policy for a principal (i.e. account/role/service) to perform actions on this bucket and/or its contents. Use `bucketArn` and `arnForObjects(keys)` to obtain ARNs for this bucket or objects.

Note that the policy statement may or may not be added to the policy.
For example, when an `IBucket` is created from an existing bucket,
it's not possible to tell whether the bucket already has a policy
attached, let alone to re-use that policy to add more statements to it.
So it's safest to do nothing in these cases.

###### `permission`<sup>Required</sup> <a name="permission" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addToResourcePolicy.parameter.permission"></a>

- *Type:* aws-cdk-lib.aws_iam.PolicyStatement

the policy statement to be added to the bucket's policy.

---

##### `arnForObjects` <a name="arnForObjects" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.arnForObjects"></a>

```typescript
public arnForObjects(keyPattern: string): string
```

Returns an ARN that represents all objects within the bucket that match the key pattern specified.

To represent all keys, specify ``"*"``.

If you need to specify a keyPattern with multiple components, concatenate them into a single string, e.g.:

  arnForObjects(`home/${team}/${user}/*`)

###### `keyPattern`<sup>Required</sup> <a name="keyPattern" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.arnForObjects.parameter.keyPattern"></a>

- *Type:* string

---

##### `enableEventBridgeNotification` <a name="enableEventBridgeNotification" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.enableEventBridgeNotification"></a>

```typescript
public enableEventBridgeNotification(): void
```

Enables event bridge notification, causing all events below to be sent to EventBridge:.

Object Deleted (DeleteObject)
- Object Deleted (Lifecycle expiration)
- Object Restore Initiated
- Object Restore Completed
- Object Restore Expired
- Object Storage Class Changed
- Object Access Tier Changed
- Object ACL Updated
- Object Tags Added
- Object Tags Deleted

##### `grantDelete` <a name="grantDelete" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantDelete"></a>

```typescript
public grantDelete(identity: IGrantable, objectsKeyPattern?: any): Grant
```

Grants s3:DeleteObject* permission to an IAM principal for objects in this bucket.

The use of this method is discouraged. Please use `grants.delete()` instead.

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantDelete.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal.

---

###### `objectsKeyPattern`<sup>Optional</sup> <a name="objectsKeyPattern" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantDelete.parameter.objectsKeyPattern"></a>

- *Type:* any

Restrict the permission to a certain key pattern (default '*').

Parameter type is `any` but `string` should be passed in.

---

##### `grantOnKey` <a name="grantOnKey" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantOnKey"></a>

```typescript
public grantOnKey(grantee: IGrantable, actions: ...string[]): GrantOnKeyResult
```

Gives permissions to a grantable entity to perform actions on the encryption key.

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantOnKey.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantOnKey.parameter.actions"></a>

- *Type:* ...string[]

---

##### `grantPublicAccess` <a name="grantPublicAccess" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantPublicAccess"></a>

```typescript
public grantPublicAccess(allowedActions: ...string[], keyPrefix?: string): Grant
```

Allows unrestricted access to objects from this bucket.

IMPORTANT: This permission allows anyone to perform actions on S3 objects
in this bucket, which is useful for when you configure your bucket as a
website and want everyone to be able to read objects in the bucket without
needing to authenticate.

Without arguments, this method will grant read ("s3:GetObject") access to
all objects ("*") in the bucket.

The method returns the `iam.Grant` object, which can then be modified
as needed. For example, you can add a condition that will restrict access only
to an IPv4 range like this:

    const grant = bucket.grantPublicAccess();
    grant.resourceStatement!.addCondition(‘IpAddress’, { “aws:SourceIp”: “54.240.143.0/24” });

Note that if this `IBucket` refers to an existing bucket, possibly not
managed by CloudFormation, this method will have no effect, since it's
impossible to modify the policy of an existing bucket.


The use of this method is discouraged. Please use `grants.publicAccess()` instead.

[disable-awslint:no-grants]

###### `allowedActions`<sup>Required</sup> <a name="allowedActions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantPublicAccess.parameter.allowedActions"></a>

- *Type:* ...string[]

the set of S3 actions to allow.

Default is "s3:GetObject".

---

###### `keyPrefix`<sup>Optional</sup> <a name="keyPrefix" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantPublicAccess.parameter.keyPrefix"></a>

- *Type:* string

the prefix of S3 object keys (e.g. `home/*`). Default is "*".

---

##### `grantPut` <a name="grantPut" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantPut"></a>

```typescript
public grantPut(identity: IGrantable, objectsKeyPattern?: any): Grant
```

Grants s3:PutObject* and s3:Abort* permissions for this bucket to an IAM principal.

If encryption is used, permission to use the key to encrypt the contents
of written files will also be granted to the same principal.


The use of this method is discouraged. Please use `grants.put()` instead.

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantPut.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal.

---

###### `objectsKeyPattern`<sup>Optional</sup> <a name="objectsKeyPattern" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantPut.parameter.objectsKeyPattern"></a>

- *Type:* any

Restrict the permission to a certain key pattern (default '*').

Parameter type is `any` but `string` should be passed in.

---

##### `grantPutAcl` <a name="grantPutAcl" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantPutAcl"></a>

```typescript
public grantPutAcl(identity: IGrantable, objectsKeyPattern?: string): Grant
```

The use of this method is discouraged. Please use `grants.putAcl()` instead.

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantPutAcl.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

###### `objectsKeyPattern`<sup>Optional</sup> <a name="objectsKeyPattern" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantPutAcl.parameter.objectsKeyPattern"></a>

- *Type:* string

---

##### `grantRead` <a name="grantRead" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantRead"></a>

```typescript
public grantRead(identity: IGrantable, objectsKeyPattern?: any): Grant
```

Grant read permissions for this bucket and its contents to an IAM principal (Role/Group/User).

If encryption is used, permission to use the key to decrypt the contents
of the bucket will also be granted to the same principal.


The use of this method is discouraged. Please use `grants.read()` instead.

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantRead.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal.

---

###### `objectsKeyPattern`<sup>Optional</sup> <a name="objectsKeyPattern" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantRead.parameter.objectsKeyPattern"></a>

- *Type:* any

Restrict the permission to a certain key pattern (default '*').

Parameter type is `any` but `string` should be passed in.

---

##### `grantReadWrite` <a name="grantReadWrite" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantReadWrite"></a>

```typescript
public grantReadWrite(identity: IGrantable, objectsKeyPattern?: any): Grant
```

The use of this method is discouraged. Please use `grants.readWrite()` instead.

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantReadWrite.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

###### `objectsKeyPattern`<sup>Optional</sup> <a name="objectsKeyPattern" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantReadWrite.parameter.objectsKeyPattern"></a>

- *Type:* any

---

##### `grantReplicationPermission` <a name="grantReplicationPermission" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantReplicationPermission"></a>

```typescript
public grantReplicationPermission(identity: IGrantable, props: GrantReplicationPermissionProps): Grant
```

Grant replication permission to a principal. This method allows the principal to perform replication operations on this bucket.

Note that when calling this function for source or destination buckets that support KMS encryption,
you need to specify the KMS key for encryption and the KMS key for decryption, respectively.


The use of this method is discouraged. Please use `grants.replicationPermission()` instead.

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantReplicationPermission.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal to grant replication permission to.

---

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantReplicationPermission.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_s3.GrantReplicationPermissionProps

The properties of the replication source and destination buckets.

---

##### `grantWrite` <a name="grantWrite" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantWrite"></a>

```typescript
public grantWrite(identity: IGrantable, objectsKeyPattern?: any, allowedActionPatterns?: string[]): Grant
```

The use of this method is discouraged. Please use `grants.write()` instead.

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantWrite.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

###### `objectsKeyPattern`<sup>Optional</sup> <a name="objectsKeyPattern" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantWrite.parameter.objectsKeyPattern"></a>

- *Type:* any

---

###### `allowedActionPatterns`<sup>Optional</sup> <a name="allowedActionPatterns" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.grantWrite.parameter.allowedActionPatterns"></a>

- *Type:* string[]

---

##### `onCloudTrailEvent` <a name="onCloudTrailEvent" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.onCloudTrailEvent"></a>

```typescript
public onCloudTrailEvent(id: string, options?: OnCloudTrailBucketEventOptions): Rule
```

Define a CloudWatch event that triggers when something happens to this repository.

Requires that there exists at least one CloudTrail Trail in your account
that captures the event. This method will not create the Trail.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.onCloudTrailEvent.parameter.id"></a>

- *Type:* string

The id of the rule.

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.onCloudTrailEvent.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_s3.OnCloudTrailBucketEventOptions

Options for adding the rule.

---

##### `onCloudTrailPutObject` <a name="onCloudTrailPutObject" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.onCloudTrailPutObject"></a>

```typescript
public onCloudTrailPutObject(id: string, options?: OnCloudTrailBucketEventOptions): Rule
```

Defines an AWS CloudWatch event that triggers when an object is uploaded to the specified paths (keys) in this bucket using the PutObject API call.

Note that some tools like `aws s3 cp` will automatically use either
PutObject or the multipart upload API depending on the file size,
so using `onCloudTrailWriteObject` may be preferable.

Requires that there exists at least one CloudTrail Trail in your account
that captures the event. This method will not create the Trail.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.onCloudTrailPutObject.parameter.id"></a>

- *Type:* string

The id of the rule.

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.onCloudTrailPutObject.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_s3.OnCloudTrailBucketEventOptions

Options for adding the rule.

---

##### `onCloudTrailWriteObject` <a name="onCloudTrailWriteObject" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.onCloudTrailWriteObject"></a>

```typescript
public onCloudTrailWriteObject(id: string, options?: OnCloudTrailBucketEventOptions): Rule
```

Defines an AWS CloudWatch event that triggers when an object at the specified paths (keys) in this bucket are written to.

This includes
the events PutObject, CopyObject, and CompleteMultipartUpload.

Note that some tools like `aws s3 cp` will automatically use either
PutObject or the multipart upload API depending on the file size,
so using this method may be preferable to `onCloudTrailPutObject`.

Requires that there exists at least one CloudTrail Trail in your account
that captures the event. This method will not create the Trail.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.onCloudTrailWriteObject.parameter.id"></a>

- *Type:* string

The id of the rule.

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.onCloudTrailWriteObject.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_s3.OnCloudTrailBucketEventOptions

Options for adding the rule.

---

##### `s3UrlForObject` <a name="s3UrlForObject" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.s3UrlForObject"></a>

```typescript
public s3UrlForObject(key?: string): string
```

The S3 URL of an S3 object. For example:.

`s3://onlybucket`
- `s3://bucket/key`

###### `key`<sup>Optional</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.s3UrlForObject.parameter.key"></a>

- *Type:* string

The S3 key of the object.

If not specified, the S3 URL of the
bucket is returned.

---

##### `transferAccelerationUrlForObject` <a name="transferAccelerationUrlForObject" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.transferAccelerationUrlForObject"></a>

```typescript
public transferAccelerationUrlForObject(key?: string, options?: TransferAccelerationUrlOptions): string
```

The https Transfer Acceleration URL of an S3 object.

Specify `dualStack: true` at the options
for dual-stack endpoint (connect to the bucket over IPv6). For example:

- `https://bucket.s3-accelerate.amazonaws.com`
- `https://bucket.s3-accelerate.amazonaws.com/key`

###### `key`<sup>Optional</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.transferAccelerationUrlForObject.parameter.key"></a>

- *Type:* string

The S3 key of the object.

If not specified, the URL of the
bucket is returned.

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.transferAccelerationUrlForObject.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_s3.TransferAccelerationUrlOptions

Options for generating URL.

---

##### `urlForObject` <a name="urlForObject" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.urlForObject"></a>

```typescript
public urlForObject(key?: string): string
```

The https URL of an S3 object. Specify `regional: false` at the options for non-regional URLs. For example:.

`https://s3.us-west-1.amazonaws.com/onlybucket`
- `https://s3.us-west-1.amazonaws.com/bucket/key`
- `https://s3.cn-north-1.amazonaws.com.cn/china-bucket/mykey`

###### `key`<sup>Optional</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.urlForObject.parameter.key"></a>

- *Type:* string

The S3 key of the object.

If not specified, the URL of the
bucket is returned.

---

##### `virtualHostedUrlForObject` <a name="virtualHostedUrlForObject" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.virtualHostedUrlForObject"></a>

```typescript
public virtualHostedUrlForObject(key?: string, options?: VirtualHostedStyleUrlOptions): string
```

The virtual hosted-style URL of an S3 object. Specify `regional: false` at the options for non-regional URL. For example:.

`https://only-bucket.s3.us-west-1.amazonaws.com`
- `https://bucket.s3.us-west-1.amazonaws.com/key`
- `https://bucket.s3.amazonaws.com/key`
- `https://china-bucket.s3.cn-north-1.amazonaws.com.cn/mykey`

###### `key`<sup>Optional</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.virtualHostedUrlForObject.parameter.key"></a>

- *Type:* string

The S3 key of the object.

If not specified, the URL of the
bucket is returned.

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.virtualHostedUrlForObject.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_s3.VirtualHostedStyleUrlOptions

Options for generating URL.

---

##### `addCorsRule` <a name="addCorsRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addCorsRule"></a>

```typescript
public addCorsRule(rule: CorsRule): void
```

Adds a cross-origin access configuration for objects in an Amazon S3 bucket.

###### `rule`<sup>Required</sup> <a name="rule" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addCorsRule.parameter.rule"></a>

- *Type:* aws-cdk-lib.aws_s3.CorsRule

The CORS configuration rule to add.

---

##### `addInventory` <a name="addInventory" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addInventory"></a>

```typescript
public addInventory(inventory: Inventory): void
```

Add an inventory configuration.

###### `inventory`<sup>Required</sup> <a name="inventory" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addInventory.parameter.inventory"></a>

- *Type:* aws-cdk-lib.aws_s3.Inventory

configuration to add.

---

##### `addLifecycleRule` <a name="addLifecycleRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addLifecycleRule"></a>

```typescript
public addLifecycleRule(rule: LifecycleRule): void
```

Add a lifecycle rule to the bucket.

###### `rule`<sup>Required</sup> <a name="rule" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addLifecycleRule.parameter.rule"></a>

- *Type:* aws-cdk-lib.aws_s3.LifecycleRule

The rule to add.

---

##### `addMetric` <a name="addMetric" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addMetric"></a>

```typescript
public addMetric(metric: BucketMetrics): void
```

Adds a metrics configuration for the CloudWatch request metrics from the bucket.

###### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.addMetric.parameter.metric"></a>

- *Type:* aws-cdk-lib.aws_s3.BucketMetrics

The metric configuration to add.

---

##### `alarm4xxErrors` <a name="alarm4xxErrors" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.alarm4xxErrors"></a>

```typescript
public alarm4xxErrors(props?: S3Bucket4xxErrorsAlarmConfig): S3Bucket4xxErrorsAlarm
```

Creates an alarm that monitors the 4xx errors for the S3 bucket.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.alarm4xxErrors.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig">S3Bucket4xxErrorsAlarmConfig</a>

---

##### `alarm5xxErrors` <a name="alarm5xxErrors" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.alarm5xxErrors"></a>

```typescript
public alarm5xxErrors(props?: S3Bucket5xxErrorsAlarmConfig): S3Bucket5xxErrorsAlarm
```

Creates an alarm that monitors the 5xx errors for the S3 bucket.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.alarm5xxErrors.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig">S3Bucket5xxErrorsAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props?: S3RecommendedAlarmsConfig): S3RecommendedAlarms
```

Creates the recommended alarms for the S3 bucket.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3)

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig">S3RecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromBucketArn">fromBucketArn</a></code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromBucketAttributes">fromBucketAttributes</a></code> | Creates a Bucket construct that represents an external bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromBucketName">fromBucketName</a></code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromCfnBucket">fromCfnBucket</a></code> | Create a mutable `IBucket` based on a low-level `CfnBucket`. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.validateBucketName">validateBucketName</a></code> | Thrown an exception if the given bucket name is not valid. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.isConstruct"></a>

```typescript
import { Bucket } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Bucket.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.isOwnedResource"></a>

```typescript
import { Bucket } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Bucket.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.isResource"></a>

```typescript
import { Bucket } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Bucket.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromBucketArn` <a name="fromBucketArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromBucketArn"></a>

```typescript
import { Bucket } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Bucket.fromBucketArn(scope: Construct, id: string, bucketArn: string)
```

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromBucketArn.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromBucketArn.parameter.id"></a>

- *Type:* string

---

###### `bucketArn`<sup>Required</sup> <a name="bucketArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromBucketArn.parameter.bucketArn"></a>

- *Type:* string

---

##### `fromBucketAttributes` <a name="fromBucketAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromBucketAttributes"></a>

```typescript
import { Bucket } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Bucket.fromBucketAttributes(scope: Construct, id: string, attrs: BucketAttributes)
```

Creates a Bucket construct that represents an external bucket.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromBucketAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromBucketAttributes.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromBucketAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_s3.BucketAttributes

A `BucketAttributes` object.

Can be obtained from a call to
`bucket.export()` or manually created.

---

##### `fromBucketName` <a name="fromBucketName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromBucketName"></a>

```typescript
import { Bucket } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Bucket.fromBucketName(scope: Construct, id: string, bucketName: string)
```

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromBucketName.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromBucketName.parameter.id"></a>

- *Type:* string

---

###### `bucketName`<sup>Required</sup> <a name="bucketName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromBucketName.parameter.bucketName"></a>

- *Type:* string

---

##### `fromCfnBucket` <a name="fromCfnBucket" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromCfnBucket"></a>

```typescript
import { Bucket } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Bucket.fromCfnBucket(cfnBucket: CfnBucket)
```

Create a mutable `IBucket` based on a low-level `CfnBucket`.

###### `cfnBucket`<sup>Required</sup> <a name="cfnBucket" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.fromCfnBucket.parameter.cfnBucket"></a>

- *Type:* aws-cdk-lib.aws_s3.CfnBucket

---

##### `validateBucketName` <a name="validateBucketName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.validateBucketName"></a>

```typescript
import { Bucket } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Bucket.validateBucketName(physicalName: string, allowLegacyBucketNaming?: boolean)
```

Thrown an exception if the given bucket name is not valid.

###### `physicalName`<sup>Required</sup> <a name="physicalName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.validateBucketName.parameter.physicalName"></a>

- *Type:* string

name of the bucket.

---

###### `allowLegacyBucketNaming`<sup>Optional</sup> <a name="allowLegacyBucketNaming" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.validateBucketName.parameter.allowLegacyBucketNaming"></a>

- *Type:* boolean

allow legacy bucket naming style, default is false.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketArn">bucketArn</a></code> | <code>string</code> | The ARN of the bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketDomainName">bucketDomainName</a></code> | <code>string</code> | The IPv4 DNS name of the specified bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketDualStackDomainName">bucketDualStackDomainName</a></code> | <code>string</code> | The IPv6 DNS name of the specified bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketName">bucketName</a></code> | <code>string</code> | The name of the bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketRef">bucketRef</a></code> | <code>aws-cdk-lib.interfaces.aws_s3.BucketReference</code> | A reference to a Bucket resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketRegionalDomainName">bucketRegionalDomainName</a></code> | <code>string</code> | The regional domain name of the specified bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketWebsiteDomainName">bucketWebsiteDomainName</a></code> | <code>string</code> | The Domain name of the static website. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketWebsiteUrl">bucketWebsiteUrl</a></code> | <code>string</code> | The URL of the static website. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.grants">grants</a></code> | <code>aws-cdk-lib.aws_s3.BucketGrants</code> | Collection of grant methods for a Bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.encryptionKey">encryptionKey</a></code> | <code>aws-cdk-lib.aws_kms.IKey</code> | Optional KMS encryption key associated with this bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.isWebsite">isWebsite</a></code> | <code>boolean</code> | If this bucket has been configured for static website hosting. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.disallowPublicAccess">disallowPublicAccess</a></code> | <code>boolean</code> | Whether to disallow public access. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.policy">policy</a></code> | <code>aws-cdk-lib.aws_s3.BucketPolicy</code> | The resource policy associated with this bucket. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.replicationRoleArn">replicationRoleArn</a></code> | <code>string</code> | Role used to set up permissions on this bucket for replication. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `bucketArn`<sup>Required</sup> <a name="bucketArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketArn"></a>

```typescript
public readonly bucketArn: string;
```

- *Type:* string

The ARN of the bucket.

---

##### `bucketDomainName`<sup>Required</sup> <a name="bucketDomainName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketDomainName"></a>

```typescript
public readonly bucketDomainName: string;
```

- *Type:* string

The IPv4 DNS name of the specified bucket.

---

##### `bucketDualStackDomainName`<sup>Required</sup> <a name="bucketDualStackDomainName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketDualStackDomainName"></a>

```typescript
public readonly bucketDualStackDomainName: string;
```

- *Type:* string

The IPv6 DNS name of the specified bucket.

---

##### `bucketName`<sup>Required</sup> <a name="bucketName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketName"></a>

```typescript
public readonly bucketName: string;
```

- *Type:* string

The name of the bucket.

---

##### `bucketRef`<sup>Required</sup> <a name="bucketRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketRef"></a>

```typescript
public readonly bucketRef: BucketReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_s3.BucketReference

A reference to a Bucket resource.

---

##### `bucketRegionalDomainName`<sup>Required</sup> <a name="bucketRegionalDomainName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketRegionalDomainName"></a>

```typescript
public readonly bucketRegionalDomainName: string;
```

- *Type:* string

The regional domain name of the specified bucket.

---

##### `bucketWebsiteDomainName`<sup>Required</sup> <a name="bucketWebsiteDomainName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketWebsiteDomainName"></a>

```typescript
public readonly bucketWebsiteDomainName: string;
```

- *Type:* string

The Domain name of the static website.

---

##### `bucketWebsiteUrl`<sup>Required</sup> <a name="bucketWebsiteUrl" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.bucketWebsiteUrl"></a>

```typescript
public readonly bucketWebsiteUrl: string;
```

- *Type:* string

The URL of the static website.

---

##### `grants`<sup>Required</sup> <a name="grants" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.grants"></a>

```typescript
public readonly grants: BucketGrants;
```

- *Type:* aws-cdk-lib.aws_s3.BucketGrants

Collection of grant methods for a Bucket.

---

##### `encryptionKey`<sup>Optional</sup> <a name="encryptionKey" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.encryptionKey"></a>

```typescript
public readonly encryptionKey: IKey;
```

- *Type:* aws-cdk-lib.aws_kms.IKey

Optional KMS encryption key associated with this bucket.

---

##### `isWebsite`<sup>Optional</sup> <a name="isWebsite" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.isWebsite"></a>

```typescript
public readonly isWebsite: boolean;
```

- *Type:* boolean

If this bucket has been configured for static website hosting.

---

##### `disallowPublicAccess`<sup>Optional</sup> <a name="disallowPublicAccess" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.disallowPublicAccess"></a>

```typescript
public readonly disallowPublicAccess: boolean;
```

- *Type:* boolean

Whether to disallow public access.

---

##### `policy`<sup>Optional</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.policy"></a>

```typescript
public readonly policy: BucketPolicy;
```

- *Type:* aws-cdk-lib.aws_s3.BucketPolicy

The resource policy associated with this bucket.

If `autoCreatePolicy` is true, a `BucketPolicy` will be created upon the
first call to addToResourcePolicy(s).

---

##### `replicationRoleArn`<sup>Optional</sup> <a name="replicationRoleArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.replicationRoleArn"></a>

```typescript
public readonly replicationRoleArn: string;
```

- *Type:* string

Role used to set up permissions on this bucket for replication.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.Bucket.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### CfnCacheCluster <a name="CfnCacheCluster" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster"></a>

An extension for the CfnCacheCluster construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.Initializer"></a>

```typescript
import { CfnCacheCluster } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new CfnCacheCluster(scope: Construct, id: string, props: CfnCacheClusterProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_elasticache.CfnCacheClusterProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_elasticache.CfnCacheClusterProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.overrideLogicalId">overrideLogicalId</a></code> | Overrides the auto-generated logical ID with a specific ID. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addDeletionOverride">addDeletionOverride</a></code> | Syntactic sugar for `addOverride(path, undefined)`. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addDependency">addDependency</a></code> | Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addDependsOn">addDependsOn</a></code> | Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addMetadata">addMetadata</a></code> | Add a value to the CloudFormation Resource Metadata. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addOverride">addOverride</a></code> | Adds an override to the synthesized CloudFormation resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addPropertyDeletionOverride">addPropertyDeletionOverride</a></code> | Adds an override that deletes the value of a property from the resource definition. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addPropertyOverride">addPropertyOverride</a></code> | Adds an override to a resource property. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.applyRemovalPolicy">applyRemovalPolicy</a></code> | Sets the deletion policy of the resource based on the removal policy specified. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.getAtt">getAtt</a></code> | Returns a token for an runtime attribute of this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.getMetadata">getMetadata</a></code> | Retrieve a value value from the CloudFormation Resource Metadata. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.obtainDependencies">obtainDependencies</a></code> | Retrieves an array of resources this resource depends on. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.obtainResourceDependencies">obtainResourceDependencies</a></code> | Get a shallow copy of dependencies between this resource and other resources in the same stack. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.removeDependency">removeDependency</a></code> | Indicates that this resource no longer depends on another resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.replaceDependency">replaceDependency</a></code> | Replaces one dependency with another. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.inspect">inspect</a></code> | Examines the CloudFormation resource and discloses attributes. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.alarmDatabaseMemoryUsagePercentage">alarmDatabaseMemoryUsagePercentage</a></code> | Creates an alarm that monitors the DatabaseMemoryUsagePercentage for the ElastiCache cacheCluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.alarmEngineCpuUtilization">alarmEngineCpuUtilization</a></code> | Creates an alarm that monitors the EngineCpuUtilization for the ElastiCache cacheCluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.alarmReplicationLag">alarmReplicationLag</a></code> | Creates an alarm that monitors the ReplicationLag for the ElastiCache cacheCluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the ElastiCache CfnCacheCluster. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `overrideLogicalId` <a name="overrideLogicalId" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.overrideLogicalId"></a>

```typescript
public overrideLogicalId(newLogicalId: string): void
```

Overrides the auto-generated logical ID with a specific ID.

###### `newLogicalId`<sup>Required</sup> <a name="newLogicalId" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.overrideLogicalId.parameter.newLogicalId"></a>

- *Type:* string

The new logical ID to use for this stack element.

---

##### `addDeletionOverride` <a name="addDeletionOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addDeletionOverride"></a>

```typescript
public addDeletionOverride(path: string): void
```

Syntactic sugar for `addOverride(path, undefined)`.

###### `path`<sup>Required</sup> <a name="path" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addDeletionOverride.parameter.path"></a>

- *Type:* string

The path of the value to delete.

---

##### `addDependency` <a name="addDependency" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addDependency"></a>

```typescript
public addDependency(target: CfnResource): void
```

Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.

This can be used for resources across stacks (or nested stack) boundaries
and the dependency will automatically be transferred to the relevant scope.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addDependency.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

---

##### ~~`addDependsOn`~~ <a name="addDependsOn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addDependsOn"></a>

```typescript
public addDependsOn(target: CfnResource): void
```

Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addDependsOn.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

---

##### `addMetadata` <a name="addMetadata" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addMetadata"></a>

```typescript
public addMetadata(key: string, value: any): void
```

Add a value to the CloudFormation Resource Metadata.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.)

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addMetadata.parameter.key"></a>

- *Type:* string

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addMetadata.parameter.value"></a>

- *Type:* any

---

##### `addOverride` <a name="addOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addOverride"></a>

```typescript
public addOverride(path: string, value: any): void
```

Adds an override to the synthesized CloudFormation resource.

To add a
property override, either use `addPropertyOverride` or prefix `path` with
"Properties." (i.e. `Properties.TopicName`).

If the override is nested, separate each nested level using a dot (.) in the path parameter.
If there is an array as part of the nesting, specify the index in the path.

To include a literal `.` in the property name, prefix with a `\`. In most
programming languages you will need to write this as `"\\."` because the
`\` itself will need to be escaped.

For example,
```typescript
cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
```
would add the overrides
```json
"Properties": {
  "GlobalSecondaryIndexes": [
    {
      "Projection": {
        "NonKeyAttributes": [ "myattribute" ]
        ...
      }
      ...
    },
    {
      "ProjectionType": "INCLUDE"
      ...
    },
  ]
  ...
}
```

The `value` argument to `addOverride` will not be processed or translated
in any way. Pass raw JSON values in here with the correct capitalization
for CloudFormation. If you pass CDK classes or structs, they will be
rendered with lowercased key names, and CloudFormation will reject the
template.

###### `path`<sup>Required</sup> <a name="path" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addOverride.parameter.path"></a>

- *Type:* string

The path of the property, you can use dot notation to override values in complex types.

Any intermediate keys
will be created as needed.

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addOverride.parameter.value"></a>

- *Type:* any

The value.

Could be primitive or complex.

---

##### `addPropertyDeletionOverride` <a name="addPropertyDeletionOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addPropertyDeletionOverride"></a>

```typescript
public addPropertyDeletionOverride(propertyPath: string): void
```

Adds an override that deletes the value of a property from the resource definition.

###### `propertyPath`<sup>Required</sup> <a name="propertyPath" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addPropertyDeletionOverride.parameter.propertyPath"></a>

- *Type:* string

The path to the property.

---

##### `addPropertyOverride` <a name="addPropertyOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addPropertyOverride"></a>

```typescript
public addPropertyOverride(propertyPath: string, value: any): void
```

Adds an override to a resource property.

Syntactic sugar for `addOverride("Properties.<...>", value)`.

###### `propertyPath`<sup>Required</sup> <a name="propertyPath" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addPropertyOverride.parameter.propertyPath"></a>

- *Type:* string

The path of the property.

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.addPropertyOverride.parameter.value"></a>

- *Type:* any

The value.

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy?: RemovalPolicy, options?: RemovalPolicyOptions): void
```

Sets the deletion policy of the resource based on the removal policy specified.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
cases, a snapshot can be taken of the resource prior to deletion
(`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
can be found in the following link:

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options)

###### `policy`<sup>Optional</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.applyRemovalPolicy.parameter.options"></a>

- *Type:* aws-cdk-lib.RemovalPolicyOptions

---

##### `getAtt` <a name="getAtt" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.getAtt"></a>

```typescript
public getAtt(attributeName: string, typeHint?: ResolutionTypeHint): Reference
```

Returns a token for an runtime attribute of this resource.

Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
in case there is no generated attribute.

###### `attributeName`<sup>Required</sup> <a name="attributeName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.getAtt.parameter.attributeName"></a>

- *Type:* string

The name of the attribute.

---

###### `typeHint`<sup>Optional</sup> <a name="typeHint" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.getAtt.parameter.typeHint"></a>

- *Type:* aws-cdk-lib.ResolutionTypeHint

---

##### `getMetadata` <a name="getMetadata" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.getMetadata"></a>

```typescript
public getMetadata(key: string): any
```

Retrieve a value value from the CloudFormation Resource Metadata.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.)

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.getMetadata.parameter.key"></a>

- *Type:* string

---

##### `obtainDependencies` <a name="obtainDependencies" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.obtainDependencies"></a>

```typescript
public obtainDependencies(): (Stack | CfnResource)[]
```

Retrieves an array of resources this resource depends on.

This assembles dependencies on resources across stacks (including nested stacks)
automatically.

##### `obtainResourceDependencies` <a name="obtainResourceDependencies" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.obtainResourceDependencies"></a>

```typescript
public obtainResourceDependencies(): CfnResource[]
```

Get a shallow copy of dependencies between this resource and other resources in the same stack.

##### `removeDependency` <a name="removeDependency" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.removeDependency"></a>

```typescript
public removeDependency(target: CfnResource): void
```

Indicates that this resource no longer depends on another resource.

This can be used for resources across stacks (including nested stacks)
and the dependency will automatically be removed from the relevant scope.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.removeDependency.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

---

##### `replaceDependency` <a name="replaceDependency" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.replaceDependency"></a>

```typescript
public replaceDependency(target: CfnResource, newTarget: CfnResource): void
```

Replaces one dependency with another.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.replaceDependency.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

The dependency to replace.

---

###### `newTarget`<sup>Required</sup> <a name="newTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.replaceDependency.parameter.newTarget"></a>

- *Type:* aws-cdk-lib.CfnResource

The new dependency to add.

---

##### `inspect` <a name="inspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.inspect"></a>

```typescript
public inspect(inspector: TreeInspector): void
```

Examines the CloudFormation resource and discloses attributes.

###### `inspector`<sup>Required</sup> <a name="inspector" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.inspect.parameter.inspector"></a>

- *Type:* aws-cdk-lib.TreeInspector

tree inspector to collect and process attributes.

---

##### `alarmDatabaseMemoryUsagePercentage` <a name="alarmDatabaseMemoryUsagePercentage" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.alarmDatabaseMemoryUsagePercentage"></a>

```typescript
public alarmDatabaseMemoryUsagePercentage(props: ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig): ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm
```

Creates an alarm that monitors the DatabaseMemoryUsagePercentage for the ElastiCache cacheCluster.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.alarmDatabaseMemoryUsagePercentage.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig">ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig</a>

---

##### `alarmEngineCpuUtilization` <a name="alarmEngineCpuUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.alarmEngineCpuUtilization"></a>

```typescript
public alarmEngineCpuUtilization(props?: ElastiCacheEngineCpuUtilizationAlarmConfig): ElastiCacheClusterEngineCpuUtilizationAlarm
```

Creates an alarm that monitors the EngineCpuUtilization for the ElastiCache cacheCluster.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.alarmEngineCpuUtilization.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig">ElastiCacheEngineCpuUtilizationAlarmConfig</a>

---

##### `alarmReplicationLag` <a name="alarmReplicationLag" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.alarmReplicationLag"></a>

```typescript
public alarmReplicationLag(props: ElastiCacheReplicationLagAlarmConfig): ElastiCacheClusterReplicationLagAlarm
```

Creates an alarm that monitors the ReplicationLag for the ElastiCache cacheCluster.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.alarmReplicationLag.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig">ElastiCacheReplicationLagAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: ElastiCacheClusterRecommendedAlarmsConfig): ElastiCacheClusterRecommendedAlarms
```

Creates the recommended alarms for the ElastiCache CfnCacheCluster.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ElastiCache](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ElastiCache)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig">ElastiCacheClusterRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.isCfnElement">isCfnElement</a></code> | Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.isCfnResource">isCfnResource</a></code> | Check whether the given object is a CfnResource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.isCfnCacheCluster">isCfnCacheCluster</a></code> | Checks whether the given object is a CfnCacheCluster. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.isConstruct"></a>

```typescript
import { CfnCacheCluster } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CfnCacheCluster.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isCfnElement` <a name="isCfnElement" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.isCfnElement"></a>

```typescript
import { CfnCacheCluster } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CfnCacheCluster.isCfnElement(x: any)
```

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different
versions of this library to be included in the same stack.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.isCfnElement.parameter.x"></a>

- *Type:* any

---

##### `isCfnResource` <a name="isCfnResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.isCfnResource"></a>

```typescript
import { CfnCacheCluster } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CfnCacheCluster.isCfnResource(x: any)
```

Check whether the given object is a CfnResource.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.isCfnResource.parameter.x"></a>

- *Type:* any

---

##### `isCfnCacheCluster` <a name="isCfnCacheCluster" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.isCfnCacheCluster"></a>

```typescript
import { CfnCacheCluster } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CfnCacheCluster.isCfnCacheCluster(x: any)
```

Checks whether the given object is a CfnCacheCluster.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.isCfnCacheCluster.parameter.x"></a>

- *Type:* any

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.creationStack">creationStack</a></code> | <code>string[]</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.logicalId">logicalId</a></code> | <code>string</code> | The logical ID for this CloudFormation stack element. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this element is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.ref">ref</a></code> | <code>string</code> | Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.cfnOptions">cfnOptions</a></code> | <code>aws-cdk-lib.ICfnResourceOptions</code> | Options for this resource, such as condition, update policy etc. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.cfnResourceType">cfnResourceType</a></code> | <code>string</code> | AWS resource type. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.attrConfigurationEndpointAddress">attrConfigurationEndpointAddress</a></code> | <code>string</code> | The DNS hostname of the cache node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.attrConfigurationEndpointPort">attrConfigurationEndpointPort</a></code> | <code>string</code> | The port number of the configuration endpoint for the Memcached cache cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.attrId">attrId</a></code> | <code>string</code> | The resource name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.attrRedisEndpointAddress">attrRedisEndpointAddress</a></code> | <code>string</code> | The DNS address of the configuration endpoint for the Valkey or Redis OSS cache cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.attrRedisEndpointPort">attrRedisEndpointPort</a></code> | <code>string</code> | The port number of the configuration endpoint for the Valkey or Redis OSS cache cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.cacheClusterRef">cacheClusterRef</a></code> | <code>aws-cdk-lib.interfaces.aws_elasticache.CacheClusterReference</code> | A reference to a CacheCluster resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.tags">tags</a></code> | <code>aws-cdk-lib.TagManager</code> | Tag Manager which manages the tags for this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.cacheNodeType">cacheNodeType</a></code> | <code>string</code> | The compute and memory capacity of the nodes in the node group (shard). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.engine">engine</a></code> | <code>string</code> | The name of the cache engine to be used for this cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.numCacheNodes">numCacheNodes</a></code> | <code>number</code> | The number of cache nodes that the cache cluster should have. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.autoMinorVersionUpgrade">autoMinorVersionUpgrade</a></code> | <code>boolean \| aws-cdk-lib.IResolvable</code> | If you are running Valkey 7.2 or later, or Redis OSS engine version 6.0 or later, set this parameter to yes if you want to opt-in to the next minor version upgrade campaign. This parameter is disabled for previous versions. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.azMode">azMode</a></code> | <code>string</code> | Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.cacheParameterGroupName">cacheParameterGroupName</a></code> | <code>string</code> | The name of the parameter group to associate with this cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.cacheSecurityGroupNames">cacheSecurityGroupNames</a></code> | <code>string[]</code> | A list of security group names to associate with this cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.cacheSubnetGroupName">cacheSubnetGroupName</a></code> | <code>string</code> | The name of the subnet group to be used for the cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.clusterName">clusterName</a></code> | <code>string</code> | A name for the cache cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.engineVersion">engineVersion</a></code> | <code>string</code> | The version number of the cache engine to be used for this cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.ipDiscovery">ipDiscovery</a></code> | <code>string</code> | The network type you choose when modifying a cluster, either `ipv4` \| `ipv6` . |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.logDeliveryConfigurations">logDeliveryConfigurations</a></code> | <code>aws-cdk-lib.IResolvable \| aws-cdk-lib.IResolvable \| aws-cdk-lib.aws_elasticache.CfnCacheCluster.LogDeliveryConfigurationRequestProperty[]</code> | Specifies the destination, format and type of the logs. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.networkType">networkType</a></code> | <code>string</code> | Must be either `ipv4` \| `ipv6` \| `dual_stack` . |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.notificationTopicArn">notificationTopicArn</a></code> | <code>string</code> | The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.port">port</a></code> | <code>number</code> | The port number on which each of the cache nodes accepts connections. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.preferredAvailabilityZone">preferredAvailabilityZone</a></code> | <code>string</code> | The EC2 Availability Zone in which the cluster is created. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.preferredAvailabilityZones">preferredAvailabilityZones</a></code> | <code>string[]</code> | A list of the Availability Zones in which cache nodes are created. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.preferredMaintenanceWindow">preferredMaintenanceWindow</a></code> | <code>string</code> | Specifies the weekly time range during which maintenance on the cluster is performed. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.snapshotArns">snapshotArns</a></code> | <code>string[]</code> | A single-element string list containing an Amazon Resource Name (ARN) that uniquely identifies a Valkey or Redis OSS RDB snapshot file stored in Amazon S3. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.snapshotName">snapshotName</a></code> | <code>string</code> | The name of a Valkey or Redis OSS snapshot from which to restore data into the new node group (shard). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.snapshotRetentionLimit">snapshotRetentionLimit</a></code> | <code>number</code> | The number of days for which ElastiCache retains automatic snapshots before deleting them. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.snapshotWindow">snapshotWindow</a></code> | <code>string</code> | The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.tagsRaw">tagsRaw</a></code> | <code>aws-cdk-lib.CfnTag[]</code> | A list of tags to be added to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.transitEncryptionEnabled">transitEncryptionEnabled</a></code> | <code>boolean \| aws-cdk-lib.IResolvable</code> | A flag that enables in-transit encryption when set to true. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.vpcSecurityGroupIds">vpcSecurityGroupIds</a></code> | <code>string[]</code> | One or more VPC security groups associated with the cluster. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `creationStack`<sup>Required</sup> <a name="creationStack" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.creationStack"></a>

```typescript
public readonly creationStack: string[];
```

- *Type:* string[]

---

##### `logicalId`<sup>Required</sup> <a name="logicalId" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.logicalId"></a>

```typescript
public readonly logicalId: string;
```

- *Type:* string

The logical ID for this CloudFormation stack element.

The logical ID of the element
is calculated from the path of the resource node in the construct tree.

To override this value, use `overrideLogicalId(newLogicalId)`.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this element is defined.

CfnElements must be defined within a stack scope (directly or indirectly).

---

##### `ref`<sup>Required</sup> <a name="ref" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.ref"></a>

```typescript
public readonly ref: string;
```

- *Type:* string

Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.

If, by any chance, the intrinsic reference of a resource is not a string, you could
coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.

---

##### `cfnOptions`<sup>Required</sup> <a name="cfnOptions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.cfnOptions"></a>

```typescript
public readonly cfnOptions: ICfnResourceOptions;
```

- *Type:* aws-cdk-lib.ICfnResourceOptions

Options for this resource, such as condition, update policy etc.

---

##### `cfnResourceType`<sup>Required</sup> <a name="cfnResourceType" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.cfnResourceType"></a>

```typescript
public readonly cfnResourceType: string;
```

- *Type:* string

AWS resource type.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

---

##### `attrConfigurationEndpointAddress`<sup>Required</sup> <a name="attrConfigurationEndpointAddress" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.attrConfigurationEndpointAddress"></a>

```typescript
public readonly attrConfigurationEndpointAddress: string;
```

- *Type:* string

The DNS hostname of the cache node.

> Valkey and Redis OSS (cluster mode disabled) replication groups don't have this attribute. Therefore, `Fn::GetAtt` returns a value for this attribute only if the replication group is clustered. Otherwise, `Fn::GetAtt` fails.

---

##### `attrConfigurationEndpointPort`<sup>Required</sup> <a name="attrConfigurationEndpointPort" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.attrConfigurationEndpointPort"></a>

```typescript
public readonly attrConfigurationEndpointPort: string;
```

- *Type:* string

The port number of the configuration endpoint for the Memcached cache cluster.

> Valkey and Redis OSS (cluster mode disabled) replication groups don't have this attribute. Therefore, `Fn::GetAtt` returns a value for this attribute only if the replication group is clustered. Otherwise, `Fn::GetAtt` fails.

---

##### `attrId`<sup>Required</sup> <a name="attrId" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.attrId"></a>

```typescript
public readonly attrId: string;
```

- *Type:* string

The resource name.

---

##### `attrRedisEndpointAddress`<sup>Required</sup> <a name="attrRedisEndpointAddress" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.attrRedisEndpointAddress"></a>

```typescript
public readonly attrRedisEndpointAddress: string;
```

- *Type:* string

The DNS address of the configuration endpoint for the Valkey or Redis OSS cache cluster.

---

##### `attrRedisEndpointPort`<sup>Required</sup> <a name="attrRedisEndpointPort" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.attrRedisEndpointPort"></a>

```typescript
public readonly attrRedisEndpointPort: string;
```

- *Type:* string

The port number of the configuration endpoint for the Valkey or Redis OSS cache cluster.

---

##### `cacheClusterRef`<sup>Required</sup> <a name="cacheClusterRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.cacheClusterRef"></a>

```typescript
public readonly cacheClusterRef: CacheClusterReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_elasticache.CacheClusterReference

A reference to a CacheCluster resource.

---

##### `tags`<sup>Required</sup> <a name="tags" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.tags"></a>

```typescript
public readonly tags: TagManager;
```

- *Type:* aws-cdk-lib.TagManager

Tag Manager which manages the tags for this resource.

---

##### `cacheNodeType`<sup>Required</sup> <a name="cacheNodeType" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.cacheNodeType"></a>

```typescript
public readonly cacheNodeType: string;
```

- *Type:* string

The compute and memory capacity of the nodes in the node group (shard).

---

##### `engine`<sup>Required</sup> <a name="engine" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.engine"></a>

```typescript
public readonly engine: string;
```

- *Type:* string

The name of the cache engine to be used for this cluster.

---

##### `numCacheNodes`<sup>Required</sup> <a name="numCacheNodes" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.numCacheNodes"></a>

```typescript
public readonly numCacheNodes: number;
```

- *Type:* number

The number of cache nodes that the cache cluster should have.

---

##### `autoMinorVersionUpgrade`<sup>Optional</sup> <a name="autoMinorVersionUpgrade" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.autoMinorVersionUpgrade"></a>

```typescript
public readonly autoMinorVersionUpgrade: boolean | IResolvable;
```

- *Type:* boolean | aws-cdk-lib.IResolvable

If you are running Valkey 7.2 or later, or Redis OSS engine version 6.0 or later, set this parameter to yes if you want to opt-in to the next minor version upgrade campaign. This parameter is disabled for previous versions.

---

##### `azMode`<sup>Optional</sup> <a name="azMode" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.azMode"></a>

```typescript
public readonly azMode: string;
```

- *Type:* string

Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region.

---

##### `cacheParameterGroupName`<sup>Optional</sup> <a name="cacheParameterGroupName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.cacheParameterGroupName"></a>

```typescript
public readonly cacheParameterGroupName: string;
```

- *Type:* string

The name of the parameter group to associate with this cluster.

---

##### `cacheSecurityGroupNames`<sup>Optional</sup> <a name="cacheSecurityGroupNames" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.cacheSecurityGroupNames"></a>

```typescript
public readonly cacheSecurityGroupNames: string[];
```

- *Type:* string[]

A list of security group names to associate with this cluster.

---

##### `cacheSubnetGroupName`<sup>Optional</sup> <a name="cacheSubnetGroupName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.cacheSubnetGroupName"></a>

```typescript
public readonly cacheSubnetGroupName: string;
```

- *Type:* string

The name of the subnet group to be used for the cluster.

---

##### `clusterName`<sup>Optional</sup> <a name="clusterName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.clusterName"></a>

```typescript
public readonly clusterName: string;
```

- *Type:* string

A name for the cache cluster.

---

##### `engineVersion`<sup>Optional</sup> <a name="engineVersion" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.engineVersion"></a>

```typescript
public readonly engineVersion: string;
```

- *Type:* string

The version number of the cache engine to be used for this cluster.

---

##### `ipDiscovery`<sup>Optional</sup> <a name="ipDiscovery" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.ipDiscovery"></a>

```typescript
public readonly ipDiscovery: string;
```

- *Type:* string

The network type you choose when modifying a cluster, either `ipv4` | `ipv6` .

---

##### `logDeliveryConfigurations`<sup>Optional</sup> <a name="logDeliveryConfigurations" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.logDeliveryConfigurations"></a>

```typescript
public readonly logDeliveryConfigurations: IResolvable | (IResolvable | LogDeliveryConfigurationRequestProperty)[];
```

- *Type:* aws-cdk-lib.IResolvable | aws-cdk-lib.IResolvable | aws-cdk-lib.aws_elasticache.CfnCacheCluster.LogDeliveryConfigurationRequestProperty[]

Specifies the destination, format and type of the logs.

---

##### `networkType`<sup>Optional</sup> <a name="networkType" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.networkType"></a>

```typescript
public readonly networkType: string;
```

- *Type:* string

Must be either `ipv4` | `ipv6` | `dual_stack` .

---

##### `notificationTopicArn`<sup>Optional</sup> <a name="notificationTopicArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.notificationTopicArn"></a>

```typescript
public readonly notificationTopicArn: string;
```

- *Type:* string

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.

---

##### `port`<sup>Optional</sup> <a name="port" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.port"></a>

```typescript
public readonly port: number;
```

- *Type:* number

The port number on which each of the cache nodes accepts connections.

---

##### `preferredAvailabilityZone`<sup>Optional</sup> <a name="preferredAvailabilityZone" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.preferredAvailabilityZone"></a>

```typescript
public readonly preferredAvailabilityZone: string;
```

- *Type:* string

The EC2 Availability Zone in which the cluster is created.

---

##### `preferredAvailabilityZones`<sup>Optional</sup> <a name="preferredAvailabilityZones" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.preferredAvailabilityZones"></a>

```typescript
public readonly preferredAvailabilityZones: string[];
```

- *Type:* string[]

A list of the Availability Zones in which cache nodes are created.

---

##### `preferredMaintenanceWindow`<sup>Optional</sup> <a name="preferredMaintenanceWindow" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.preferredMaintenanceWindow"></a>

```typescript
public readonly preferredMaintenanceWindow: string;
```

- *Type:* string

Specifies the weekly time range during which maintenance on the cluster is performed.

---

##### `snapshotArns`<sup>Optional</sup> <a name="snapshotArns" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.snapshotArns"></a>

```typescript
public readonly snapshotArns: string[];
```

- *Type:* string[]

A single-element string list containing an Amazon Resource Name (ARN) that uniquely identifies a Valkey or Redis OSS RDB snapshot file stored in Amazon S3.

---

##### `snapshotName`<sup>Optional</sup> <a name="snapshotName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.snapshotName"></a>

```typescript
public readonly snapshotName: string;
```

- *Type:* string

The name of a Valkey or Redis OSS snapshot from which to restore data into the new node group (shard).

---

##### `snapshotRetentionLimit`<sup>Optional</sup> <a name="snapshotRetentionLimit" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.snapshotRetentionLimit"></a>

```typescript
public readonly snapshotRetentionLimit: number;
```

- *Type:* number

The number of days for which ElastiCache retains automatic snapshots before deleting them.

---

##### `snapshotWindow`<sup>Optional</sup> <a name="snapshotWindow" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.snapshotWindow"></a>

```typescript
public readonly snapshotWindow: string;
```

- *Type:* string

The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).

---

##### `tagsRaw`<sup>Optional</sup> <a name="tagsRaw" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.tagsRaw"></a>

```typescript
public readonly tagsRaw: CfnTag[];
```

- *Type:* aws-cdk-lib.CfnTag[]

A list of tags to be added to this resource.

---

##### `transitEncryptionEnabled`<sup>Optional</sup> <a name="transitEncryptionEnabled" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.transitEncryptionEnabled"></a>

```typescript
public readonly transitEncryptionEnabled: boolean | IResolvable;
```

- *Type:* boolean | aws-cdk-lib.IResolvable

A flag that enables in-transit encryption when set to true.

---

##### `vpcSecurityGroupIds`<sup>Optional</sup> <a name="vpcSecurityGroupIds" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.vpcSecurityGroupIds"></a>

```typescript
public readonly vpcSecurityGroupIds: string[];
```

- *Type:* string[]

One or more VPC security groups associated with the cluster.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.CFN_RESOURCE_TYPE_NAME">CFN_RESOURCE_TYPE_NAME</a></code> | <code>string</code> | The CloudFormation resource type name for this resource class. |

---

##### `CFN_RESOURCE_TYPE_NAME`<sup>Required</sup> <a name="CFN_RESOURCE_TYPE_NAME" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnCacheCluster.property.CFN_RESOURCE_TYPE_NAME"></a>

```typescript
public readonly CFN_RESOURCE_TYPE_NAME: string;
```

- *Type:* string

The CloudFormation resource type name for this resource class.

---

### CfnReplicationGroup <a name="CfnReplicationGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup"></a>

An extension for the CfnReplicationGroup construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.Initializer"></a>

```typescript
import { CfnReplicationGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new CfnReplicationGroup(scope: Construct, id: string, props: CfnReplicationGroupProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_elasticache.CfnReplicationGroupProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_elasticache.CfnReplicationGroupProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.overrideLogicalId">overrideLogicalId</a></code> | Overrides the auto-generated logical ID with a specific ID. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addDeletionOverride">addDeletionOverride</a></code> | Syntactic sugar for `addOverride(path, undefined)`. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addDependency">addDependency</a></code> | Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addDependsOn">addDependsOn</a></code> | Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addMetadata">addMetadata</a></code> | Add a value to the CloudFormation Resource Metadata. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addOverride">addOverride</a></code> | Adds an override to the synthesized CloudFormation resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addPropertyDeletionOverride">addPropertyDeletionOverride</a></code> | Adds an override that deletes the value of a property from the resource definition. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addPropertyOverride">addPropertyOverride</a></code> | Adds an override to a resource property. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.applyRemovalPolicy">applyRemovalPolicy</a></code> | Sets the deletion policy of the resource based on the removal policy specified. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.getAtt">getAtt</a></code> | Returns a token for an runtime attribute of this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.getMetadata">getMetadata</a></code> | Retrieve a value value from the CloudFormation Resource Metadata. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.obtainDependencies">obtainDependencies</a></code> | Retrieves an array of resources this resource depends on. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.obtainResourceDependencies">obtainResourceDependencies</a></code> | Get a shallow copy of dependencies between this resource and other resources in the same stack. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.removeDependency">removeDependency</a></code> | Indicates that this resource no longer depends on another resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.replaceDependency">replaceDependency</a></code> | Replaces one dependency with another. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.inspect">inspect</a></code> | Examines the CloudFormation resource and discloses attributes. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.alarmDatabaseMemoryUsagePercentage">alarmDatabaseMemoryUsagePercentage</a></code> | Creates an alarm that monitors the DatabaseMemoryUsagePercentage for the ElastiCache cacheReplicationGroup. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.alarmEngineCpuUtilization">alarmEngineCpuUtilization</a></code> | Creates an alarm that monitors the EngineCpuUtilization for the ElastiCache cacheReplicationGroup. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.alarmReplicationLag">alarmReplicationLag</a></code> | Creates an alarm that monitors the ReplicationLag for the ElastiCache cacheReplicationGroup. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the ElastiCache CfnReplicationGroup. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `overrideLogicalId` <a name="overrideLogicalId" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.overrideLogicalId"></a>

```typescript
public overrideLogicalId(newLogicalId: string): void
```

Overrides the auto-generated logical ID with a specific ID.

###### `newLogicalId`<sup>Required</sup> <a name="newLogicalId" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.overrideLogicalId.parameter.newLogicalId"></a>

- *Type:* string

The new logical ID to use for this stack element.

---

##### `addDeletionOverride` <a name="addDeletionOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addDeletionOverride"></a>

```typescript
public addDeletionOverride(path: string): void
```

Syntactic sugar for `addOverride(path, undefined)`.

###### `path`<sup>Required</sup> <a name="path" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addDeletionOverride.parameter.path"></a>

- *Type:* string

The path of the value to delete.

---

##### `addDependency` <a name="addDependency" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addDependency"></a>

```typescript
public addDependency(target: CfnResource): void
```

Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.

This can be used for resources across stacks (or nested stack) boundaries
and the dependency will automatically be transferred to the relevant scope.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addDependency.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

---

##### ~~`addDependsOn`~~ <a name="addDependsOn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addDependsOn"></a>

```typescript
public addDependsOn(target: CfnResource): void
```

Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addDependsOn.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

---

##### `addMetadata` <a name="addMetadata" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addMetadata"></a>

```typescript
public addMetadata(key: string, value: any): void
```

Add a value to the CloudFormation Resource Metadata.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.)

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addMetadata.parameter.key"></a>

- *Type:* string

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addMetadata.parameter.value"></a>

- *Type:* any

---

##### `addOverride` <a name="addOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addOverride"></a>

```typescript
public addOverride(path: string, value: any): void
```

Adds an override to the synthesized CloudFormation resource.

To add a
property override, either use `addPropertyOverride` or prefix `path` with
"Properties." (i.e. `Properties.TopicName`).

If the override is nested, separate each nested level using a dot (.) in the path parameter.
If there is an array as part of the nesting, specify the index in the path.

To include a literal `.` in the property name, prefix with a `\`. In most
programming languages you will need to write this as `"\\."` because the
`\` itself will need to be escaped.

For example,
```typescript
cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
```
would add the overrides
```json
"Properties": {
  "GlobalSecondaryIndexes": [
    {
      "Projection": {
        "NonKeyAttributes": [ "myattribute" ]
        ...
      }
      ...
    },
    {
      "ProjectionType": "INCLUDE"
      ...
    },
  ]
  ...
}
```

The `value` argument to `addOverride` will not be processed or translated
in any way. Pass raw JSON values in here with the correct capitalization
for CloudFormation. If you pass CDK classes or structs, they will be
rendered with lowercased key names, and CloudFormation will reject the
template.

###### `path`<sup>Required</sup> <a name="path" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addOverride.parameter.path"></a>

- *Type:* string

The path of the property, you can use dot notation to override values in complex types.

Any intermediate keys
will be created as needed.

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addOverride.parameter.value"></a>

- *Type:* any

The value.

Could be primitive or complex.

---

##### `addPropertyDeletionOverride` <a name="addPropertyDeletionOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addPropertyDeletionOverride"></a>

```typescript
public addPropertyDeletionOverride(propertyPath: string): void
```

Adds an override that deletes the value of a property from the resource definition.

###### `propertyPath`<sup>Required</sup> <a name="propertyPath" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addPropertyDeletionOverride.parameter.propertyPath"></a>

- *Type:* string

The path to the property.

---

##### `addPropertyOverride` <a name="addPropertyOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addPropertyOverride"></a>

```typescript
public addPropertyOverride(propertyPath: string, value: any): void
```

Adds an override to a resource property.

Syntactic sugar for `addOverride("Properties.<...>", value)`.

###### `propertyPath`<sup>Required</sup> <a name="propertyPath" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addPropertyOverride.parameter.propertyPath"></a>

- *Type:* string

The path of the property.

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.addPropertyOverride.parameter.value"></a>

- *Type:* any

The value.

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy?: RemovalPolicy, options?: RemovalPolicyOptions): void
```

Sets the deletion policy of the resource based on the removal policy specified.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
cases, a snapshot can be taken of the resource prior to deletion
(`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
can be found in the following link:

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options)

###### `policy`<sup>Optional</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.applyRemovalPolicy.parameter.options"></a>

- *Type:* aws-cdk-lib.RemovalPolicyOptions

---

##### `getAtt` <a name="getAtt" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.getAtt"></a>

```typescript
public getAtt(attributeName: string, typeHint?: ResolutionTypeHint): Reference
```

Returns a token for an runtime attribute of this resource.

Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
in case there is no generated attribute.

###### `attributeName`<sup>Required</sup> <a name="attributeName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.getAtt.parameter.attributeName"></a>

- *Type:* string

The name of the attribute.

---

###### `typeHint`<sup>Optional</sup> <a name="typeHint" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.getAtt.parameter.typeHint"></a>

- *Type:* aws-cdk-lib.ResolutionTypeHint

---

##### `getMetadata` <a name="getMetadata" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.getMetadata"></a>

```typescript
public getMetadata(key: string): any
```

Retrieve a value value from the CloudFormation Resource Metadata.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.)

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.getMetadata.parameter.key"></a>

- *Type:* string

---

##### `obtainDependencies` <a name="obtainDependencies" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.obtainDependencies"></a>

```typescript
public obtainDependencies(): (Stack | CfnResource)[]
```

Retrieves an array of resources this resource depends on.

This assembles dependencies on resources across stacks (including nested stacks)
automatically.

##### `obtainResourceDependencies` <a name="obtainResourceDependencies" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.obtainResourceDependencies"></a>

```typescript
public obtainResourceDependencies(): CfnResource[]
```

Get a shallow copy of dependencies between this resource and other resources in the same stack.

##### `removeDependency` <a name="removeDependency" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.removeDependency"></a>

```typescript
public removeDependency(target: CfnResource): void
```

Indicates that this resource no longer depends on another resource.

This can be used for resources across stacks (including nested stacks)
and the dependency will automatically be removed from the relevant scope.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.removeDependency.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

---

##### `replaceDependency` <a name="replaceDependency" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.replaceDependency"></a>

```typescript
public replaceDependency(target: CfnResource, newTarget: CfnResource): void
```

Replaces one dependency with another.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.replaceDependency.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

The dependency to replace.

---

###### `newTarget`<sup>Required</sup> <a name="newTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.replaceDependency.parameter.newTarget"></a>

- *Type:* aws-cdk-lib.CfnResource

The new dependency to add.

---

##### `inspect` <a name="inspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.inspect"></a>

```typescript
public inspect(inspector: TreeInspector): void
```

Examines the CloudFormation resource and discloses attributes.

###### `inspector`<sup>Required</sup> <a name="inspector" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.inspect.parameter.inspector"></a>

- *Type:* aws-cdk-lib.TreeInspector

tree inspector to collect and process attributes.

---

##### `alarmDatabaseMemoryUsagePercentage` <a name="alarmDatabaseMemoryUsagePercentage" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.alarmDatabaseMemoryUsagePercentage"></a>

```typescript
public alarmDatabaseMemoryUsagePercentage(props: ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig): ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm
```

Creates an alarm that monitors the DatabaseMemoryUsagePercentage for the ElastiCache cacheReplicationGroup.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.alarmDatabaseMemoryUsagePercentage.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig">ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig</a>

---

##### `alarmEngineCpuUtilization` <a name="alarmEngineCpuUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.alarmEngineCpuUtilization"></a>

```typescript
public alarmEngineCpuUtilization(props?: ElastiCacheEngineCpuUtilizationAlarmConfig): ElastiCacheReplicationGroupEngineCpuUtilizationAlarm
```

Creates an alarm that monitors the EngineCpuUtilization for the ElastiCache cacheReplicationGroup.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.alarmEngineCpuUtilization.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig">ElastiCacheEngineCpuUtilizationAlarmConfig</a>

---

##### `alarmReplicationLag` <a name="alarmReplicationLag" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.alarmReplicationLag"></a>

```typescript
public alarmReplicationLag(props: ElastiCacheReplicationLagAlarmConfig): ElastiCacheReplicationGroupReplicationLagAlarm
```

Creates an alarm that monitors the ReplicationLag for the ElastiCache cacheReplicationGroup.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.alarmReplicationLag.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig">ElastiCacheReplicationLagAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: ElastiCacheReplicationGroupRecommendedAlarmsConfig): ElastiCacheReplicationGroupRecommendedAlarms
```

Creates the recommended alarms for the ElastiCache CfnReplicationGroup.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ElastiCache](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ElastiCache)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig">ElastiCacheReplicationGroupRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.isCfnElement">isCfnElement</a></code> | Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.isCfnResource">isCfnResource</a></code> | Check whether the given object is a CfnResource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.arnForReplicationGroup">arnForReplicationGroup</a></code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.fromReplicationGroupId">fromReplicationGroupId</a></code> | Creates a new IReplicationGroupRef from a replicationGroupId. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.isCfnReplicationGroup">isCfnReplicationGroup</a></code> | Checks whether the given object is a CfnReplicationGroup. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.isConstruct"></a>

```typescript
import { CfnReplicationGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CfnReplicationGroup.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isCfnElement` <a name="isCfnElement" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.isCfnElement"></a>

```typescript
import { CfnReplicationGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CfnReplicationGroup.isCfnElement(x: any)
```

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different
versions of this library to be included in the same stack.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.isCfnElement.parameter.x"></a>

- *Type:* any

---

##### `isCfnResource` <a name="isCfnResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.isCfnResource"></a>

```typescript
import { CfnReplicationGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CfnReplicationGroup.isCfnResource(x: any)
```

Check whether the given object is a CfnResource.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.isCfnResource.parameter.x"></a>

- *Type:* any

---

##### `arnForReplicationGroup` <a name="arnForReplicationGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.arnForReplicationGroup"></a>

```typescript
import { CfnReplicationGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CfnReplicationGroup.arnForReplicationGroup(resource: IReplicationGroupRef)
```

###### `resource`<sup>Required</sup> <a name="resource" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.arnForReplicationGroup.parameter.resource"></a>

- *Type:* aws-cdk-lib.interfaces.aws_elasticache.IReplicationGroupRef

---

##### `fromReplicationGroupId` <a name="fromReplicationGroupId" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.fromReplicationGroupId"></a>

```typescript
import { CfnReplicationGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CfnReplicationGroup.fromReplicationGroupId(scope: Construct, id: string, replicationGroupId: string)
```

Creates a new IReplicationGroupRef from a replicationGroupId.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.fromReplicationGroupId.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.fromReplicationGroupId.parameter.id"></a>

- *Type:* string

---

###### `replicationGroupId`<sup>Required</sup> <a name="replicationGroupId" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.fromReplicationGroupId.parameter.replicationGroupId"></a>

- *Type:* string

---

##### `isCfnReplicationGroup` <a name="isCfnReplicationGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.isCfnReplicationGroup"></a>

```typescript
import { CfnReplicationGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CfnReplicationGroup.isCfnReplicationGroup(x: any)
```

Checks whether the given object is a CfnReplicationGroup.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.isCfnReplicationGroup.parameter.x"></a>

- *Type:* any

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.creationStack">creationStack</a></code> | <code>string[]</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.logicalId">logicalId</a></code> | <code>string</code> | The logical ID for this CloudFormation stack element. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this element is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.ref">ref</a></code> | <code>string</code> | Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.cfnOptions">cfnOptions</a></code> | <code>aws-cdk-lib.ICfnResourceOptions</code> | Options for this resource, such as condition, update policy etc. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.cfnResourceType">cfnResourceType</a></code> | <code>string</code> | AWS resource type. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrConfigurationEndPoint">attrConfigurationEndPoint</a></code> | <code>aws-cdk-lib.IResolvable</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrConfigurationEndPointAddress">attrConfigurationEndPointAddress</a></code> | <code>string</code> | The DNS hostname of the cache node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrConfigurationEndPointPort">attrConfigurationEndPointPort</a></code> | <code>string</code> | The port number that the cache engine is listening on. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrPrimaryEndPoint">attrPrimaryEndPoint</a></code> | <code>aws-cdk-lib.IResolvable</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrPrimaryEndPointAddress">attrPrimaryEndPointAddress</a></code> | <code>string</code> | The DNS address of the primary read-write cache node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrPrimaryEndPointPort">attrPrimaryEndPointPort</a></code> | <code>string</code> | The number of the port that the primary read-write cache engine is listening on. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReadEndPoint">attrReadEndPoint</a></code> | <code>aws-cdk-lib.IResolvable</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReadEndPointAddresses">attrReadEndPointAddresses</a></code> | <code>string</code> | A string with a list of endpoints for the primary and read-only replicas. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReadEndPointAddressesList">attrReadEndPointAddressesList</a></code> | <code>string[]</code> | A list of endpoints for the read-only replicas. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReadEndPointPorts">attrReadEndPointPorts</a></code> | <code>string</code> | A string with a list of ports for the read-only replicas. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReadEndPointPortsList">attrReadEndPointPortsList</a></code> | <code>string[]</code> | A list of ports for the read-only replicas. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReaderEndPoint">attrReaderEndPoint</a></code> | <code>aws-cdk-lib.IResolvable</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReaderEndPointAddress">attrReaderEndPointAddress</a></code> | <code>string</code> | The address of the reader endpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReaderEndPointPort">attrReaderEndPointPort</a></code> | <code>string</code> | The port used by the reader endpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.replicationGroupRef">replicationGroupRef</a></code> | <code>aws-cdk-lib.interfaces.aws_elasticache.ReplicationGroupReference</code> | A reference to a ReplicationGroup resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.tags">tags</a></code> | <code>aws-cdk-lib.TagManager</code> | Tag Manager which manages the tags for this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.replicationGroupDescription">replicationGroupDescription</a></code> | <code>string</code> | A user-created description for the replication group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.atRestEncryptionEnabled">atRestEncryptionEnabled</a></code> | <code>boolean \| aws-cdk-lib.IResolvable</code> | A flag that enables encryption at rest when set to `true` . |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.authToken">authToken</a></code> | <code>string</code> | *Reserved parameter.* The password used to access a password protected server. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.automaticFailoverEnabled">automaticFailoverEnabled</a></code> | <code>boolean \| aws-cdk-lib.IResolvable</code> | Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.autoMinorVersionUpgrade">autoMinorVersionUpgrade</a></code> | <code>boolean \| aws-cdk-lib.IResolvable</code> | If you are running Valkey 7.2 or later, or Redis OSS 6.0 or later, set this parameter to yes if you want to opt-in to the next minor version upgrade campaign. This parameter is disabled for previous versions. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.cacheNodeType">cacheNodeType</a></code> | <code>string</code> | The compute and memory capacity of the nodes in the node group (shard). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.cacheParameterGroupName">cacheParameterGroupName</a></code> | <code>string</code> | The name of the parameter group to associate with this replication group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.cacheSecurityGroupNames">cacheSecurityGroupNames</a></code> | <code>string[]</code> | A list of cache security group names to associate with this replication group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.cacheSubnetGroupName">cacheSubnetGroupName</a></code> | <code>string</code> | The name of the cache subnet group to be used for the replication group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.clusterMode">clusterMode</a></code> | <code>string</code> | The mode can be enabled or disabled. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.dataTieringEnabled">dataTieringEnabled</a></code> | <code>boolean \| aws-cdk-lib.IResolvable</code> | Enables data tiering. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.engine">engine</a></code> | <code>string</code> | The name of the cache engine to be used for the clusters in this replication group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.engineVersion">engineVersion</a></code> | <code>string</code> | The version number of the cache engine to be used for the clusters in this replication group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.globalReplicationGroupId">globalReplicationGroupId</a></code> | <code>string</code> | The name of the Global datastore. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.ipDiscovery">ipDiscovery</a></code> | <code>string</code> | The network type you choose when creating a replication group, either `ipv4` \| `ipv6` . |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.kmsKeyId">kmsKeyId</a></code> | <code>string</code> | The ID of the KMS key used to encrypt the disk on the cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.logDeliveryConfigurations">logDeliveryConfigurations</a></code> | <code>aws-cdk-lib.IResolvable \| aws-cdk-lib.IResolvable \| aws-cdk-lib.aws_elasticache.CfnReplicationGroup.LogDeliveryConfigurationRequestProperty[]</code> | Specifies the destination, format and type of the logs. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.multiAzEnabled">multiAzEnabled</a></code> | <code>boolean \| aws-cdk-lib.IResolvable</code> | A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.networkType">networkType</a></code> | <code>string</code> | Must be either `ipv4` \| `ipv6` \| `dual_stack` . |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.nodeGroupConfiguration">nodeGroupConfiguration</a></code> | <code>aws-cdk-lib.IResolvable \| aws-cdk-lib.IResolvable \| aws-cdk-lib.aws_elasticache.CfnReplicationGroup.NodeGroupConfigurationProperty[]</code> | `NodeGroupConfiguration` is a property of the `AWS::ElastiCache::ReplicationGroup` resource that configures an Amazon ElastiCache (ElastiCache) Valkey or Redis OSS cluster node group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.notificationTopicArn">notificationTopicArn</a></code> | <code>string</code> | The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.numCacheClusters">numCacheClusters</a></code> | <code>number</code> | The number of clusters this replication group initially has. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.numNodeGroups">numNodeGroups</a></code> | <code>number</code> | An optional parameter that specifies the number of node groups (shards) for this Valkey or Redis OSS (cluster mode enabled) replication group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.port">port</a></code> | <code>number</code> | The port number on which each member of the replication group accepts connections. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.preferredCacheClusterAZs">preferredCacheClusterAZs</a></code> | <code>string[]</code> | A list of EC2 Availability Zones in which the replication group's clusters are created. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.preferredMaintenanceWindow">preferredMaintenanceWindow</a></code> | <code>string</code> | Specifies the weekly time range during which maintenance on the cluster is performed. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.primaryClusterId">primaryClusterId</a></code> | <code>string</code> | The identifier of the cluster that serves as the primary for this replication group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.replicasPerNodeGroup">replicasPerNodeGroup</a></code> | <code>number</code> | An optional parameter that specifies the number of replica nodes in each node group (shard). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.replicationGroupId">replicationGroupId</a></code> | <code>string</code> | The replication group identifier. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.securityGroupIds">securityGroupIds</a></code> | <code>string[]</code> | One or more Amazon VPC security groups associated with this replication group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.snapshotArns">snapshotArns</a></code> | <code>string[]</code> | A list of Amazon Resource Names (ARN) that uniquely identify the Valkey or Redis OSS RDB snapshot files stored in Amazon S3. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.snapshotName">snapshotName</a></code> | <code>string</code> | The name of a snapshot from which to restore data into the new replication group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.snapshotRetentionLimit">snapshotRetentionLimit</a></code> | <code>number</code> | The number of days for which ElastiCache retains automatic snapshots before deleting them. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.snapshottingClusterId">snapshottingClusterId</a></code> | <code>string</code> | The cluster ID that is used as the daily snapshot source for the replication group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.snapshotWindow">snapshotWindow</a></code> | <code>string</code> | The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.tagsRaw">tagsRaw</a></code> | <code>aws-cdk-lib.CfnTag[]</code> | A list of tags to be added to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.transitEncryptionEnabled">transitEncryptionEnabled</a></code> | <code>boolean \| aws-cdk-lib.IResolvable</code> | A flag that enables in-transit encryption when set to `true` . |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.transitEncryptionMode">transitEncryptionMode</a></code> | <code>string</code> | A setting that allows you to migrate your clients to use in-transit encryption, with no downtime. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.userGroupIds">userGroupIds</a></code> | <code>string[]</code> | The ID of user group to associate with the replication group. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `creationStack`<sup>Required</sup> <a name="creationStack" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.creationStack"></a>

```typescript
public readonly creationStack: string[];
```

- *Type:* string[]

---

##### `logicalId`<sup>Required</sup> <a name="logicalId" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.logicalId"></a>

```typescript
public readonly logicalId: string;
```

- *Type:* string

The logical ID for this CloudFormation stack element.

The logical ID of the element
is calculated from the path of the resource node in the construct tree.

To override this value, use `overrideLogicalId(newLogicalId)`.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this element is defined.

CfnElements must be defined within a stack scope (directly or indirectly).

---

##### `ref`<sup>Required</sup> <a name="ref" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.ref"></a>

```typescript
public readonly ref: string;
```

- *Type:* string

Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.

If, by any chance, the intrinsic reference of a resource is not a string, you could
coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.

---

##### `cfnOptions`<sup>Required</sup> <a name="cfnOptions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.cfnOptions"></a>

```typescript
public readonly cfnOptions: ICfnResourceOptions;
```

- *Type:* aws-cdk-lib.ICfnResourceOptions

Options for this resource, such as condition, update policy etc.

---

##### `cfnResourceType`<sup>Required</sup> <a name="cfnResourceType" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.cfnResourceType"></a>

```typescript
public readonly cfnResourceType: string;
```

- *Type:* string

AWS resource type.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

---

##### `attrConfigurationEndPoint`<sup>Required</sup> <a name="attrConfigurationEndPoint" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrConfigurationEndPoint"></a>

```typescript
public readonly attrConfigurationEndPoint: IResolvable;
```

- *Type:* aws-cdk-lib.IResolvable

---

##### `attrConfigurationEndPointAddress`<sup>Required</sup> <a name="attrConfigurationEndPointAddress" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrConfigurationEndPointAddress"></a>

```typescript
public readonly attrConfigurationEndPointAddress: string;
```

- *Type:* string

The DNS hostname of the cache node.

> Valkey or Redis OSS (cluster mode disabled) replication groups don't have this attribute. Therefore, `Fn::GetAtt` returns a value for this attribute only if the replication group is clustered. Otherwise, `Fn::GetAtt` fails. For Valkey or Redis OSS (cluster mode disabled) replication groups, use the `PrimaryEndpoint` or `ReadEndpoint` attributes.

---

##### `attrConfigurationEndPointPort`<sup>Required</sup> <a name="attrConfigurationEndPointPort" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrConfigurationEndPointPort"></a>

```typescript
public readonly attrConfigurationEndPointPort: string;
```

- *Type:* string

The port number that the cache engine is listening on.

---

##### `attrPrimaryEndPoint`<sup>Required</sup> <a name="attrPrimaryEndPoint" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrPrimaryEndPoint"></a>

```typescript
public readonly attrPrimaryEndPoint: IResolvable;
```

- *Type:* aws-cdk-lib.IResolvable

---

##### `attrPrimaryEndPointAddress`<sup>Required</sup> <a name="attrPrimaryEndPointAddress" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrPrimaryEndPointAddress"></a>

```typescript
public readonly attrPrimaryEndPointAddress: string;
```

- *Type:* string

The DNS address of the primary read-write cache node.

---

##### `attrPrimaryEndPointPort`<sup>Required</sup> <a name="attrPrimaryEndPointPort" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrPrimaryEndPointPort"></a>

```typescript
public readonly attrPrimaryEndPointPort: string;
```

- *Type:* string

The number of the port that the primary read-write cache engine is listening on.

---

##### `attrReadEndPoint`<sup>Required</sup> <a name="attrReadEndPoint" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReadEndPoint"></a>

```typescript
public readonly attrReadEndPoint: IResolvable;
```

- *Type:* aws-cdk-lib.IResolvable

---

##### `attrReadEndPointAddresses`<sup>Required</sup> <a name="attrReadEndPointAddresses" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReadEndPointAddresses"></a>

```typescript
public readonly attrReadEndPointAddresses: string;
```

- *Type:* string

A string with a list of endpoints for the primary and read-only replicas.

The order of the addresses maps to the order of the ports from the `ReadEndPoint.Ports` attribute.

---

##### `attrReadEndPointAddressesList`<sup>Required</sup> <a name="attrReadEndPointAddressesList" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReadEndPointAddressesList"></a>

```typescript
public readonly attrReadEndPointAddressesList: string[];
```

- *Type:* string[]

A list of endpoints for the read-only replicas.

The order of the addresses maps to the order of the ports from the ReadEndPoint.Ports attribute.

---

##### `attrReadEndPointPorts`<sup>Required</sup> <a name="attrReadEndPointPorts" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReadEndPointPorts"></a>

```typescript
public readonly attrReadEndPointPorts: string;
```

- *Type:* string

A string with a list of ports for the read-only replicas.

The order of the ports maps to the order of the addresses from the `ReadEndPoint.Addresses` attribute.

---

##### `attrReadEndPointPortsList`<sup>Required</sup> <a name="attrReadEndPointPortsList" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReadEndPointPortsList"></a>

```typescript
public readonly attrReadEndPointPortsList: string[];
```

- *Type:* string[]

A list of ports for the read-only replicas.

The order of the ports maps to the order of the addresses from the ReadEndPoint.Addresses attribute.

---

##### `attrReaderEndPoint`<sup>Required</sup> <a name="attrReaderEndPoint" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReaderEndPoint"></a>

```typescript
public readonly attrReaderEndPoint: IResolvable;
```

- *Type:* aws-cdk-lib.IResolvable

---

##### `attrReaderEndPointAddress`<sup>Required</sup> <a name="attrReaderEndPointAddress" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReaderEndPointAddress"></a>

```typescript
public readonly attrReaderEndPointAddress: string;
```

- *Type:* string

The address of the reader endpoint.

---

##### `attrReaderEndPointPort`<sup>Required</sup> <a name="attrReaderEndPointPort" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.attrReaderEndPointPort"></a>

```typescript
public readonly attrReaderEndPointPort: string;
```

- *Type:* string

The port used by the reader endpoint.

---

##### `replicationGroupRef`<sup>Required</sup> <a name="replicationGroupRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.replicationGroupRef"></a>

```typescript
public readonly replicationGroupRef: ReplicationGroupReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_elasticache.ReplicationGroupReference

A reference to a ReplicationGroup resource.

---

##### `tags`<sup>Required</sup> <a name="tags" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.tags"></a>

```typescript
public readonly tags: TagManager;
```

- *Type:* aws-cdk-lib.TagManager

Tag Manager which manages the tags for this resource.

---

##### `replicationGroupDescription`<sup>Required</sup> <a name="replicationGroupDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.replicationGroupDescription"></a>

```typescript
public readonly replicationGroupDescription: string;
```

- *Type:* string

A user-created description for the replication group.

---

##### `atRestEncryptionEnabled`<sup>Optional</sup> <a name="atRestEncryptionEnabled" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.atRestEncryptionEnabled"></a>

```typescript
public readonly atRestEncryptionEnabled: boolean | IResolvable;
```

- *Type:* boolean | aws-cdk-lib.IResolvable

A flag that enables encryption at rest when set to `true` .

---

##### `authToken`<sup>Optional</sup> <a name="authToken" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.authToken"></a>

```typescript
public readonly authToken: string;
```

- *Type:* string

*Reserved parameter.* The password used to access a password protected server.

---

##### `automaticFailoverEnabled`<sup>Optional</sup> <a name="automaticFailoverEnabled" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.automaticFailoverEnabled"></a>

```typescript
public readonly automaticFailoverEnabled: boolean | IResolvable;
```

- *Type:* boolean | aws-cdk-lib.IResolvable

Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails.

---

##### `autoMinorVersionUpgrade`<sup>Optional</sup> <a name="autoMinorVersionUpgrade" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.autoMinorVersionUpgrade"></a>

```typescript
public readonly autoMinorVersionUpgrade: boolean | IResolvable;
```

- *Type:* boolean | aws-cdk-lib.IResolvable

If you are running Valkey 7.2 or later, or Redis OSS 6.0 or later, set this parameter to yes if you want to opt-in to the next minor version upgrade campaign. This parameter is disabled for previous versions.

---

##### `cacheNodeType`<sup>Optional</sup> <a name="cacheNodeType" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.cacheNodeType"></a>

```typescript
public readonly cacheNodeType: string;
```

- *Type:* string

The compute and memory capacity of the nodes in the node group (shard).

---

##### `cacheParameterGroupName`<sup>Optional</sup> <a name="cacheParameterGroupName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.cacheParameterGroupName"></a>

```typescript
public readonly cacheParameterGroupName: string;
```

- *Type:* string

The name of the parameter group to associate with this replication group.

---

##### ~~`cacheSecurityGroupNames`~~<sup>Optional</sup> <a name="cacheSecurityGroupNames" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.cacheSecurityGroupNames"></a>

- *Deprecated:* this property has been deprecated

```typescript
public readonly cacheSecurityGroupNames: string[];
```

- *Type:* string[]

A list of cache security group names to associate with this replication group.

---

##### `cacheSubnetGroupName`<sup>Optional</sup> <a name="cacheSubnetGroupName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.cacheSubnetGroupName"></a>

```typescript
public readonly cacheSubnetGroupName: string;
```

- *Type:* string

The name of the cache subnet group to be used for the replication group.

---

##### `clusterMode`<sup>Optional</sup> <a name="clusterMode" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.clusterMode"></a>

```typescript
public readonly clusterMode: string;
```

- *Type:* string

The mode can be enabled or disabled.

---

##### `dataTieringEnabled`<sup>Optional</sup> <a name="dataTieringEnabled" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.dataTieringEnabled"></a>

```typescript
public readonly dataTieringEnabled: boolean | IResolvable;
```

- *Type:* boolean | aws-cdk-lib.IResolvable

Enables data tiering.

---

##### `engine`<sup>Optional</sup> <a name="engine" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.engine"></a>

```typescript
public readonly engine: string;
```

- *Type:* string

The name of the cache engine to be used for the clusters in this replication group.

---

##### `engineVersion`<sup>Optional</sup> <a name="engineVersion" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.engineVersion"></a>

```typescript
public readonly engineVersion: string;
```

- *Type:* string

The version number of the cache engine to be used for the clusters in this replication group.

---

##### `globalReplicationGroupId`<sup>Optional</sup> <a name="globalReplicationGroupId" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.globalReplicationGroupId"></a>

```typescript
public readonly globalReplicationGroupId: string;
```

- *Type:* string

The name of the Global datastore.

---

##### `ipDiscovery`<sup>Optional</sup> <a name="ipDiscovery" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.ipDiscovery"></a>

```typescript
public readonly ipDiscovery: string;
```

- *Type:* string

The network type you choose when creating a replication group, either `ipv4` | `ipv6` .

---

##### `kmsKeyId`<sup>Optional</sup> <a name="kmsKeyId" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.kmsKeyId"></a>

```typescript
public readonly kmsKeyId: string;
```

- *Type:* string

The ID of the KMS key used to encrypt the disk on the cluster.

---

##### `logDeliveryConfigurations`<sup>Optional</sup> <a name="logDeliveryConfigurations" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.logDeliveryConfigurations"></a>

```typescript
public readonly logDeliveryConfigurations: IResolvable | (IResolvable | LogDeliveryConfigurationRequestProperty)[];
```

- *Type:* aws-cdk-lib.IResolvable | aws-cdk-lib.IResolvable | aws-cdk-lib.aws_elasticache.CfnReplicationGroup.LogDeliveryConfigurationRequestProperty[]

Specifies the destination, format and type of the logs.

---

##### `multiAzEnabled`<sup>Optional</sup> <a name="multiAzEnabled" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.multiAzEnabled"></a>

```typescript
public readonly multiAzEnabled: boolean | IResolvable;
```

- *Type:* boolean | aws-cdk-lib.IResolvable

A flag indicating if you have Multi-AZ enabled to enhance fault tolerance.

---

##### `networkType`<sup>Optional</sup> <a name="networkType" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.networkType"></a>

```typescript
public readonly networkType: string;
```

- *Type:* string

Must be either `ipv4` | `ipv6` | `dual_stack` .

---

##### `nodeGroupConfiguration`<sup>Optional</sup> <a name="nodeGroupConfiguration" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.nodeGroupConfiguration"></a>

```typescript
public readonly nodeGroupConfiguration: IResolvable | (IResolvable | NodeGroupConfigurationProperty)[];
```

- *Type:* aws-cdk-lib.IResolvable | aws-cdk-lib.IResolvable | aws-cdk-lib.aws_elasticache.CfnReplicationGroup.NodeGroupConfigurationProperty[]

`NodeGroupConfiguration` is a property of the `AWS::ElastiCache::ReplicationGroup` resource that configures an Amazon ElastiCache (ElastiCache) Valkey or Redis OSS cluster node group.

---

##### `notificationTopicArn`<sup>Optional</sup> <a name="notificationTopicArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.notificationTopicArn"></a>

```typescript
public readonly notificationTopicArn: string;
```

- *Type:* string

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.

---

##### `numCacheClusters`<sup>Optional</sup> <a name="numCacheClusters" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.numCacheClusters"></a>

```typescript
public readonly numCacheClusters: number;
```

- *Type:* number

The number of clusters this replication group initially has.

---

##### `numNodeGroups`<sup>Optional</sup> <a name="numNodeGroups" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.numNodeGroups"></a>

```typescript
public readonly numNodeGroups: number;
```

- *Type:* number

An optional parameter that specifies the number of node groups (shards) for this Valkey or Redis OSS (cluster mode enabled) replication group.

---

##### `port`<sup>Optional</sup> <a name="port" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.port"></a>

```typescript
public readonly port: number;
```

- *Type:* number

The port number on which each member of the replication group accepts connections.

---

##### `preferredCacheClusterAZs`<sup>Optional</sup> <a name="preferredCacheClusterAZs" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.preferredCacheClusterAZs"></a>

```typescript
public readonly preferredCacheClusterAZs: string[];
```

- *Type:* string[]

A list of EC2 Availability Zones in which the replication group's clusters are created.

---

##### `preferredMaintenanceWindow`<sup>Optional</sup> <a name="preferredMaintenanceWindow" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.preferredMaintenanceWindow"></a>

```typescript
public readonly preferredMaintenanceWindow: string;
```

- *Type:* string

Specifies the weekly time range during which maintenance on the cluster is performed.

---

##### `primaryClusterId`<sup>Optional</sup> <a name="primaryClusterId" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.primaryClusterId"></a>

```typescript
public readonly primaryClusterId: string;
```

- *Type:* string

The identifier of the cluster that serves as the primary for this replication group.

---

##### `replicasPerNodeGroup`<sup>Optional</sup> <a name="replicasPerNodeGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.replicasPerNodeGroup"></a>

```typescript
public readonly replicasPerNodeGroup: number;
```

- *Type:* number

An optional parameter that specifies the number of replica nodes in each node group (shard).

---

##### `replicationGroupId`<sup>Optional</sup> <a name="replicationGroupId" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.replicationGroupId"></a>

```typescript
public readonly replicationGroupId: string;
```

- *Type:* string

The replication group identifier.

This parameter is stored as a lowercase string.

---

##### `securityGroupIds`<sup>Optional</sup> <a name="securityGroupIds" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.securityGroupIds"></a>

```typescript
public readonly securityGroupIds: string[];
```

- *Type:* string[]

One or more Amazon VPC security groups associated with this replication group.

---

##### `snapshotArns`<sup>Optional</sup> <a name="snapshotArns" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.snapshotArns"></a>

```typescript
public readonly snapshotArns: string[];
```

- *Type:* string[]

A list of Amazon Resource Names (ARN) that uniquely identify the Valkey or Redis OSS RDB snapshot files stored in Amazon S3.

---

##### `snapshotName`<sup>Optional</sup> <a name="snapshotName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.snapshotName"></a>

```typescript
public readonly snapshotName: string;
```

- *Type:* string

The name of a snapshot from which to restore data into the new replication group.

---

##### `snapshotRetentionLimit`<sup>Optional</sup> <a name="snapshotRetentionLimit" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.snapshotRetentionLimit"></a>

```typescript
public readonly snapshotRetentionLimit: number;
```

- *Type:* number

The number of days for which ElastiCache retains automatic snapshots before deleting them.

---

##### `snapshottingClusterId`<sup>Optional</sup> <a name="snapshottingClusterId" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.snapshottingClusterId"></a>

```typescript
public readonly snapshottingClusterId: string;
```

- *Type:* string

The cluster ID that is used as the daily snapshot source for the replication group.

---

##### `snapshotWindow`<sup>Optional</sup> <a name="snapshotWindow" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.snapshotWindow"></a>

```typescript
public readonly snapshotWindow: string;
```

- *Type:* string

The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).

---

##### `tagsRaw`<sup>Optional</sup> <a name="tagsRaw" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.tagsRaw"></a>

```typescript
public readonly tagsRaw: CfnTag[];
```

- *Type:* aws-cdk-lib.CfnTag[]

A list of tags to be added to this resource.

---

##### `transitEncryptionEnabled`<sup>Optional</sup> <a name="transitEncryptionEnabled" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.transitEncryptionEnabled"></a>

```typescript
public readonly transitEncryptionEnabled: boolean | IResolvable;
```

- *Type:* boolean | aws-cdk-lib.IResolvable

A flag that enables in-transit encryption when set to `true` .

---

##### `transitEncryptionMode`<sup>Optional</sup> <a name="transitEncryptionMode" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.transitEncryptionMode"></a>

```typescript
public readonly transitEncryptionMode: string;
```

- *Type:* string

A setting that allows you to migrate your clients to use in-transit encryption, with no downtime.

---

##### `userGroupIds`<sup>Optional</sup> <a name="userGroupIds" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.userGroupIds"></a>

```typescript
public readonly userGroupIds: string[];
```

- *Type:* string[]

The ID of user group to associate with the replication group.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.CFN_RESOURCE_TYPE_NAME">CFN_RESOURCE_TYPE_NAME</a></code> | <code>string</code> | The CloudFormation resource type name for this resource class. |

---

##### `CFN_RESOURCE_TYPE_NAME`<sup>Required</sup> <a name="CFN_RESOURCE_TYPE_NAME" id="@renovosolutions/cdk-library-cloudwatch-alarms.CfnReplicationGroup.property.CFN_RESOURCE_TYPE_NAME"></a>

```typescript
public readonly CFN_RESOURCE_TYPE_NAME: string;
```

- *Type:* string

The CloudFormation resource type name for this resource class.

---

### CloudFrontDistribution5xxErrorRateAlarm <a name="CloudFrontDistribution5xxErrorRateAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm"></a>

This alarm monitors the percentage of 5xx error responses from your origin server, to help you detect if the CloudFront service is having issues.

See {@link https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/troubleshooting-response-errors.html Troubleshooting error responses from your origin} for information to help you understand the problems with your server.

The alarm is triggered when the percentage exceeds the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.Initializer"></a>

```typescript
import { CloudFrontDistribution5xxErrorRateAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new CloudFrontDistribution5xxErrorRateAlarm(scope: IConstruct, id: string, props: CloudFrontDistribution5xxErrorRateAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps">CloudFrontDistribution5xxErrorRateAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps">CloudFrontDistribution5xxErrorRateAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.isConstruct"></a>

```typescript
import { CloudFrontDistribution5xxErrorRateAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistribution5xxErrorRateAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.isOwnedResource"></a>

```typescript
import { CloudFrontDistribution5xxErrorRateAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistribution5xxErrorRateAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.isResource"></a>

```typescript
import { CloudFrontDistribution5xxErrorRateAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistribution5xxErrorRateAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.fromAlarmArn"></a>

```typescript
import { CloudFrontDistribution5xxErrorRateAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistribution5xxErrorRateAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.fromAlarmName"></a>

```typescript
import { CloudFrontDistribution5xxErrorRateAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistribution5xxErrorRateAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm <a name="CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm"></a>

This alarm helps you monitor execution errors from CloudFront functions so that you can take steps to resolve them.

Analyze the CloudWatch function logs and look at the function code to find and resolve the root
cause of the problem.

The alarm is triggered when the number of execution errors is greater than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.Initializer"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm(scope: IConstruct, id: string, props: CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps">CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps">CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.isConstruct"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.isOwnedResource"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.isResource"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.fromAlarmArn"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.fromAlarmName"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### CloudFrontDistributionDetailedFunctionThrottlesAlarm <a name="CloudFrontDistributionDetailedFunctionThrottlesAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm"></a>

This alarm helps you to monitor if your CloudFront function is throttled.

If your function is throttled, it means that it is taking too long to execute.
To avoid function throttles, consider optimizing the function code.

The alarm is triggered when the number of times the function was throttled is greater than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.Initializer"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionThrottlesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new CloudFrontDistributionDetailedFunctionThrottlesAlarm(scope: IConstruct, id: string, props: CloudFrontDistributionDetailedFunctionThrottlesAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps">CloudFrontDistributionDetailedFunctionThrottlesAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps">CloudFrontDistributionDetailedFunctionThrottlesAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.isConstruct"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionThrottlesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionDetailedFunctionThrottlesAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.isOwnedResource"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionThrottlesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionDetailedFunctionThrottlesAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.isResource"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionThrottlesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionDetailedFunctionThrottlesAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.fromAlarmArn"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionThrottlesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionDetailedFunctionThrottlesAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.fromAlarmName"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionThrottlesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionDetailedFunctionThrottlesAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### CloudFrontDistributionDetailedFunctionValidationErrorsAlarm <a name="CloudFrontDistributionDetailedFunctionValidationErrorsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm"></a>

This alarm helps you monitor validation errors from CloudFront functions so that you can take steps to resolve them.

Analyze the CloudWatch function logs and look at the function code to find and resolve the root
cause of the problem.

The alarm is triggered when the number of validation errors is greater than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.Initializer"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionValidationErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new CloudFrontDistributionDetailedFunctionValidationErrorsAlarm(scope: IConstruct, id: string, props: CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps">CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps">CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.isConstruct"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionValidationErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.isOwnedResource"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionValidationErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.isResource"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionValidationErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.fromAlarmArn"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionValidationErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.fromAlarmName"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionValidationErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### CloudFrontDistributionOriginLatencyAlarm <a name="CloudFrontDistributionOriginLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm"></a>

The alarm helps to monitor if the origin server is taking too long to respond.

If the server takes too long to respond, it might lead to a timeout.
Refer to {@link https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/http-504-gateway-timeout.html#http-504-gateway-timeout-slow-application find and fix delayed responses from applications on your origin server}
if you experience consistently high OriginLatency values.

The alarm is triggered when the percentage is lower or equals the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.Initializer"></a>

```typescript
import { CloudFrontDistributionOriginLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new CloudFrontDistributionOriginLatencyAlarm(scope: IConstruct, id: string, props: CloudFrontDistributionOriginLatencyAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps">CloudFrontDistributionOriginLatencyAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps">CloudFrontDistributionOriginLatencyAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.isConstruct"></a>

```typescript
import { CloudFrontDistributionOriginLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionOriginLatencyAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.isOwnedResource"></a>

```typescript
import { CloudFrontDistributionOriginLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionOriginLatencyAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.isResource"></a>

```typescript
import { CloudFrontDistributionOriginLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionOriginLatencyAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.fromAlarmArn"></a>

```typescript
import { CloudFrontDistributionOriginLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionOriginLatencyAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.fromAlarmName"></a>

```typescript
import { CloudFrontDistributionOriginLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionOriginLatencyAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### CloudFrontDistributionRecommendedAlarms <a name="CloudFrontDistributionRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms"></a>

A construct that creates the recommended alarms for an CloudFront Distribution.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#CloudFront](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#CloudFront)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.Initializer"></a>

```typescript
import { CloudFrontDistributionRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new CloudFrontDistributionRecommendedAlarms(scope: Construct, id: string, props: CloudFrontDistributionRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps">CloudFrontDistributionRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps">CloudFrontDistributionRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.isConstruct"></a>

```typescript
import { CloudFrontDistributionRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

CloudFrontDistributionRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.property.alarm5xxErrorRate">alarm5xxErrorRate</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm">CloudFrontDistribution5xxErrorRateAlarm</a></code> | The 5xxErrorRate alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.property.alarmOriginLatency">alarmOriginLatency</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm">CloudFrontDistributionOriginLatencyAlarm</a></code> | The OriginLatency alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarm5xxErrorRate`<sup>Optional</sup> <a name="alarm5xxErrorRate" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.property.alarm5xxErrorRate"></a>

```typescript
public readonly alarm5xxErrorRate: CloudFrontDistribution5xxErrorRateAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarm">CloudFrontDistribution5xxErrorRateAlarm</a>

The 5xxErrorRate alarm.

---

##### `alarmOriginLatency`<sup>Optional</sup> <a name="alarmOriginLatency" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarms.property.alarmOriginLatency"></a>

```typescript
public readonly alarmOriginLatency: CloudFrontDistributionOriginLatencyAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarm">CloudFrontDistributionOriginLatencyAlarm</a>

The OriginLatency alarm.

---


### DatabaseCluster <a name="DatabaseCluster" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster"></a>

An extension of the database cluster construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.Initializer"></a>

```typescript
import { DatabaseCluster } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DatabaseCluster(scope: Construct, id: string, props: DatabaseClusterProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_rds.DatabaseClusterProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_rds.DatabaseClusterProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.addProxy">addProxy</a></code> | Add a new db proxy to this cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.asSecretAttachmentTarget">asSecretAttachmentTarget</a></code> | Renders the secret attachment target specifications. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.grantConnect">grantConnect</a></code> | [disable-awslint:no-grants]. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.grantDataApiAccess">grantDataApiAccess</a></code> | Grant the given identity to access the Data API. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metric">metric</a></code> | Return the given named metric for this DBCluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricCPUUtilization">metricCPUUtilization</a></code> | The percentage of CPU utilization. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricDatabaseConnections">metricDatabaseConnections</a></code> | The number of database connections in use. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricDeadlocks">metricDeadlocks</a></code> | The average number of deadlocks in the database per second. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricEngineUptime">metricEngineUptime</a></code> | The amount of time that the instance has been running, in seconds. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricFreeableMemory">metricFreeableMemory</a></code> | The amount of available random access memory, in bytes. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricFreeLocalStorage">metricFreeLocalStorage</a></code> | The amount of local storage available, in bytes. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricNetworkReceiveThroughput">metricNetworkReceiveThroughput</a></code> | The amount of network throughput received from clients by each instance, in bytes per second. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricNetworkThroughput">metricNetworkThroughput</a></code> | The amount of network throughput both received from and transmitted to clients by each instance, in bytes per second. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricNetworkTransmitThroughput">metricNetworkTransmitThroughput</a></code> | The amount of network throughput sent to clients by each instance, in bytes per second. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricSnapshotStorageUsed">metricSnapshotStorageUsed</a></code> | The total amount of backup storage in bytes consumed by all Aurora snapshots outside its backup retention window. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricTotalBackupStorageBilled">metricTotalBackupStorageBilled</a></code> | The total amount of backup storage in bytes for which you are billed. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricVolumeBytesUsed">metricVolumeBytesUsed</a></code> | The amount of storage used by your Aurora DB instance, in bytes. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricVolumeReadIOPs">metricVolumeReadIOPs</a></code> | The average number of disk read I/O operations per second. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricVolumeWriteIOPs">metricVolumeWriteIOPs</a></code> | The average number of disk write I/O operations per second. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.addRotationMultiUser">addRotationMultiUser</a></code> | Adds the multi user rotation to this cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.addRotationSingleUser">addRotationSingleUser</a></code> | Adds the single user rotation of the master password to this cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricACUUtilization">metricACUUtilization</a></code> | This value is represented as a percentage. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricServerlessDatabaseCapacity">metricServerlessDatabaseCapacity</a></code> | As a cluster-level metric, it represents the average of the ServerlessDatabaseCapacity values of all the Aurora Serverless v2 DB instances in the cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.alarmAuroraBinLogReplicationLag">alarmAuroraBinLogReplicationLag</a></code> | Creates an alarm that monitors the Bin Log Replication lag. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.alarmAuroraVolumeBytesLeftTotal">alarmAuroraVolumeBytesLeftTotal</a></code> | Creates an alarm that monitors the AuroraVolumeBytesLeftTotal. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.alarmAuroraVolumeBytesUsed">alarmAuroraVolumeBytesUsed</a></code> | Creates an anomaly detection alarm on the VolumeBytesUsed metric. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates recommended alarms for the database cluster. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addProxy` <a name="addProxy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.addProxy"></a>

```typescript
public addProxy(id: string, options: DatabaseProxyOptions): DatabaseProxy
```

Add a new db proxy to this cluster.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.addProxy.parameter.id"></a>

- *Type:* string

---

###### `options`<sup>Required</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.addProxy.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_rds.DatabaseProxyOptions

---

##### `asSecretAttachmentTarget` <a name="asSecretAttachmentTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.asSecretAttachmentTarget"></a>

```typescript
public asSecretAttachmentTarget(): SecretAttachmentTargetProps
```

Renders the secret attachment target specifications.

##### `grantConnect` <a name="grantConnect" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.grantConnect"></a>

```typescript
public grantConnect(grantee: IGrantable, dbUser: string): Grant
```

[disable-awslint:no-grants].

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.grantConnect.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

###### `dbUser`<sup>Required</sup> <a name="dbUser" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.grantConnect.parameter.dbUser"></a>

- *Type:* string

---

##### `grantDataApiAccess` <a name="grantDataApiAccess" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.grantDataApiAccess"></a>

```typescript
public grantDataApiAccess(grantee: IGrantable): Grant
```

Grant the given identity to access the Data API.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.grantDataApiAccess.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

##### `metric` <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metric"></a>

```typescript
public metric(metricName: string, props?: MetricOptions): Metric
```

Return the given named metric for this DBCluster.

###### `metricName`<sup>Required</sup> <a name="metricName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metric.parameter.metricName"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metric.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricCPUUtilization` <a name="metricCPUUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricCPUUtilization"></a>

```typescript
public metricCPUUtilization(props?: MetricOptions): Metric
```

The percentage of CPU utilization.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricCPUUtilization.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricDatabaseConnections` <a name="metricDatabaseConnections" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricDatabaseConnections"></a>

```typescript
public metricDatabaseConnections(props?: MetricOptions): Metric
```

The number of database connections in use.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricDatabaseConnections.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricDeadlocks` <a name="metricDeadlocks" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricDeadlocks"></a>

```typescript
public metricDeadlocks(props?: MetricOptions): Metric
```

The average number of deadlocks in the database per second.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricDeadlocks.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricEngineUptime` <a name="metricEngineUptime" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricEngineUptime"></a>

```typescript
public metricEngineUptime(props?: MetricOptions): Metric
```

The amount of time that the instance has been running, in seconds.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricEngineUptime.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricFreeableMemory` <a name="metricFreeableMemory" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricFreeableMemory"></a>

```typescript
public metricFreeableMemory(props?: MetricOptions): Metric
```

The amount of available random access memory, in bytes.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricFreeableMemory.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricFreeLocalStorage` <a name="metricFreeLocalStorage" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricFreeLocalStorage"></a>

```typescript
public metricFreeLocalStorage(props?: MetricOptions): Metric
```

The amount of local storage available, in bytes.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricFreeLocalStorage.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricNetworkReceiveThroughput` <a name="metricNetworkReceiveThroughput" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricNetworkReceiveThroughput"></a>

```typescript
public metricNetworkReceiveThroughput(props?: MetricOptions): Metric
```

The amount of network throughput received from clients by each instance, in bytes per second.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricNetworkReceiveThroughput.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricNetworkThroughput` <a name="metricNetworkThroughput" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricNetworkThroughput"></a>

```typescript
public metricNetworkThroughput(props?: MetricOptions): Metric
```

The amount of network throughput both received from and transmitted to clients by each instance, in bytes per second.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricNetworkThroughput.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricNetworkTransmitThroughput` <a name="metricNetworkTransmitThroughput" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricNetworkTransmitThroughput"></a>

```typescript
public metricNetworkTransmitThroughput(props?: MetricOptions): Metric
```

The amount of network throughput sent to clients by each instance, in bytes per second.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricNetworkTransmitThroughput.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricSnapshotStorageUsed` <a name="metricSnapshotStorageUsed" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricSnapshotStorageUsed"></a>

```typescript
public metricSnapshotStorageUsed(props?: MetricOptions): Metric
```

The total amount of backup storage in bytes consumed by all Aurora snapshots outside its backup retention window.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricSnapshotStorageUsed.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricTotalBackupStorageBilled` <a name="metricTotalBackupStorageBilled" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricTotalBackupStorageBilled"></a>

```typescript
public metricTotalBackupStorageBilled(props?: MetricOptions): Metric
```

The total amount of backup storage in bytes for which you are billed.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricTotalBackupStorageBilled.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricVolumeBytesUsed` <a name="metricVolumeBytesUsed" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricVolumeBytesUsed"></a>

```typescript
public metricVolumeBytesUsed(props?: MetricOptions): Metric
```

The amount of storage used by your Aurora DB instance, in bytes.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricVolumeBytesUsed.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricVolumeReadIOPs` <a name="metricVolumeReadIOPs" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricVolumeReadIOPs"></a>

```typescript
public metricVolumeReadIOPs(props?: MetricOptions): Metric
```

The average number of disk read I/O operations per second.

This metric is only available for Aurora database clusters.
For non-Aurora RDS clusters, this metric will not return any data
in CloudWatch.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricVolumeReadIOPs.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricVolumeWriteIOPs` <a name="metricVolumeWriteIOPs" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricVolumeWriteIOPs"></a>

```typescript
public metricVolumeWriteIOPs(props?: MetricOptions): Metric
```

The average number of disk write I/O operations per second.

This metric is only available for Aurora database clusters.
For non-Aurora RDS clusters, this metric will not return any data
in CloudWatch.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricVolumeWriteIOPs.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `addRotationMultiUser` <a name="addRotationMultiUser" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.addRotationMultiUser"></a>

```typescript
public addRotationMultiUser(id: string, options: RotationMultiUserOptions): SecretRotation
```

Adds the multi user rotation to this cluster.

See [Alternating users rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.addRotationMultiUser.parameter.id"></a>

- *Type:* string

---

###### `options`<sup>Required</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.addRotationMultiUser.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_rds.RotationMultiUserOptions

---

##### `addRotationSingleUser` <a name="addRotationSingleUser" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.addRotationSingleUser"></a>

```typescript
public addRotationSingleUser(options?: RotationSingleUserOptions): SecretRotation
```

Adds the single user rotation of the master password to this cluster.

See [Single user rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-one-user-one-password)

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.addRotationSingleUser.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_rds.RotationSingleUserOptions

---

##### `metricACUUtilization` <a name="metricACUUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricACUUtilization"></a>

```typescript
public metricACUUtilization(props?: MetricOptions): Metric
```

This value is represented as a percentage.

It's calculated as the value of the
ServerlessDatabaseCapacity metric divided by the maximum ACU value of the DB cluster.

If this metric approaches a value of 100.0, the DB instance has scaled up as high as it can.
Consider increasing the maximum ACU setting for the cluster.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricACUUtilization.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricServerlessDatabaseCapacity` <a name="metricServerlessDatabaseCapacity" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricServerlessDatabaseCapacity"></a>

```typescript
public metricServerlessDatabaseCapacity(props?: MetricOptions): Metric
```

As a cluster-level metric, it represents the average of the ServerlessDatabaseCapacity values of all the Aurora Serverless v2 DB instances in the cluster.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.metricServerlessDatabaseCapacity.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `alarmAuroraBinLogReplicationLag` <a name="alarmAuroraBinLogReplicationLag" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.alarmAuroraBinLogReplicationLag"></a>

```typescript
public alarmAuroraBinLogReplicationLag(props?: RdsAuroraBinLogReplicationLagAlarmConfig): RdsAuroraBinLogReplicationLagAlarm
```

Creates an alarm that monitors the Bin Log Replication lag.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.alarmAuroraBinLogReplicationLag.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig">RdsAuroraBinLogReplicationLagAlarmConfig</a>

---

##### `alarmAuroraVolumeBytesLeftTotal` <a name="alarmAuroraVolumeBytesLeftTotal" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.alarmAuroraVolumeBytesLeftTotal"></a>

```typescript
public alarmAuroraVolumeBytesLeftTotal(props: RdsAuroraVolumeBytesLeftTotalAlarmConfig): RdsAuroraVolumeBytesLeftTotalAlarm
```

Creates an alarm that monitors the AuroraVolumeBytesLeftTotal.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.alarmAuroraVolumeBytesLeftTotal.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig">RdsAuroraVolumeBytesLeftTotalAlarmConfig</a>

---

##### `alarmAuroraVolumeBytesUsed` <a name="alarmAuroraVolumeBytesUsed" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.alarmAuroraVolumeBytesUsed"></a>

```typescript
public alarmAuroraVolumeBytesUsed(props?: RdsAuroraVolumeBytesUsedAlarmConfig): RdsAuroraVolumeBytesUsedAlarm
```

Creates an anomaly detection alarm on the VolumeBytesUsed metric.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.alarmAuroraVolumeBytesUsed.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig">RdsAuroraVolumeBytesUsedAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: RdsAuroraRecommendedAlarmsConfig): RdsAuroraRecommendedAlarms
```

Creates recommended alarms for the database cluster.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#RDS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#RDS)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig">RdsAuroraRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.fromDatabaseClusterAttributes">fromDatabaseClusterAttributes</a></code> | Import an existing DatabaseCluster from properties. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.fromLookup">fromLookup</a></code> | Lookup an existing DatabaseCluster using clusterIdentifier. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.isConstruct"></a>

```typescript
import { DatabaseCluster } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DatabaseCluster.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.isOwnedResource"></a>

```typescript
import { DatabaseCluster } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DatabaseCluster.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.isResource"></a>

```typescript
import { DatabaseCluster } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DatabaseCluster.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromDatabaseClusterAttributes` <a name="fromDatabaseClusterAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.fromDatabaseClusterAttributes"></a>

```typescript
import { DatabaseCluster } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DatabaseCluster.fromDatabaseClusterAttributes(scope: Construct, id: string, attrs: DatabaseClusterAttributes)
```

Import an existing DatabaseCluster from properties.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.fromDatabaseClusterAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.fromDatabaseClusterAttributes.parameter.id"></a>

- *Type:* string

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.fromDatabaseClusterAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_rds.DatabaseClusterAttributes

---

##### `fromLookup` <a name="fromLookup" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.fromLookup"></a>

```typescript
import { DatabaseCluster } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DatabaseCluster.fromLookup(scope: Construct, id: string, options: DatabaseClusterLookupOptions)
```

Lookup an existing DatabaseCluster using clusterIdentifier.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.fromLookup.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.fromLookup.parameter.id"></a>

- *Type:* string

---

###### `options`<sup>Required</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.fromLookup.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_rds.DatabaseClusterLookupOptions

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.clusterArn">clusterArn</a></code> | <code>string</code> | The ARN of the cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.clusterEndpoint">clusterEndpoint</a></code> | <code>aws-cdk-lib.aws_rds.Endpoint</code> | The endpoint to use for read/write operations. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.clusterIdentifier">clusterIdentifier</a></code> | <code>string</code> | Identifier of the cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.clusterReadEndpoint">clusterReadEndpoint</a></code> | <code>aws-cdk-lib.aws_rds.Endpoint</code> | Endpoint to use for load-balanced read-only operations. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.clusterResourceIdentifier">clusterResourceIdentifier</a></code> | <code>string</code> | The immutable identifier for the cluster; for example: cluster-ABCD1234EFGH5678IJKL90MNOP. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.connections">connections</a></code> | <code>aws-cdk-lib.aws_ec2.Connections</code> | Access to the network connections. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.dbClusterRef">dbClusterRef</a></code> | <code>aws-cdk-lib.interfaces.aws_rds.DBClusterReference</code> | A reference to this database cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.instanceEndpoints">instanceEndpoints</a></code> | <code>aws-cdk-lib.aws_rds.Endpoint[]</code> | Endpoints which address each individual replica. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.instanceIdentifiers">instanceIdentifiers</a></code> | <code>string[]</code> | Identifiers of the replicas. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.engine">engine</a></code> | <code>aws-cdk-lib.aws_rds.IClusterEngine</code> | The engine for this Cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.secret">secret</a></code> | <code>aws-cdk-lib.aws_secretsmanager.ISecret</code> | The secret attached to this cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.cloudwatchLogGroups">cloudwatchLogGroups</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_logs.ILogGroup}</code> | The log group is created when `cloudwatchLogsExports` is set. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.multiUserRotationApplication">multiUserRotationApplication</a></code> | <code>aws-cdk-lib.aws_secretsmanager.SecretRotationApplication</code> | Application for multi user rotation to this cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.performanceInsightsEnabled">performanceInsightsEnabled</a></code> | <code>boolean</code> | Whether Performance Insights is enabled at cluster level. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.singleUserRotationApplication">singleUserRotationApplication</a></code> | <code>aws-cdk-lib.aws_secretsmanager.SecretRotationApplication</code> | Application for single user rotation of the master password to this cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | The VPC network to place the cluster in. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.databaseInsightsMode">databaseInsightsMode</a></code> | <code>aws-cdk-lib.aws_rds.DatabaseInsightsMode</code> | The database insights mode. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.monitoringRole">monitoringRole</a></code> | <code>aws-cdk-lib.aws_iam.IRole</code> | The IAM role for the enhanced monitoring. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.performanceInsightEncryptionKey">performanceInsightEncryptionKey</a></code> | <code>aws-cdk-lib.aws_kms.IKey</code> | The AWS KMS key for encryption of Performance Insights data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.performanceInsightRetention">performanceInsightRetention</a></code> | <code>aws-cdk-lib.aws_rds.PerformanceInsightRetention</code> | The amount of time, in days, to retain Performance Insights data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.vpcSubnets">vpcSubnets</a></code> | <code>aws-cdk-lib.aws_ec2.SubnetSelection</code> | The cluster's subnets. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `clusterArn`<sup>Required</sup> <a name="clusterArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.clusterArn"></a>

```typescript
public readonly clusterArn: string;
```

- *Type:* string

The ARN of the cluster.

---

##### `clusterEndpoint`<sup>Required</sup> <a name="clusterEndpoint" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.clusterEndpoint"></a>

```typescript
public readonly clusterEndpoint: Endpoint;
```

- *Type:* aws-cdk-lib.aws_rds.Endpoint

The endpoint to use for read/write operations.

---

##### `clusterIdentifier`<sup>Required</sup> <a name="clusterIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.clusterIdentifier"></a>

```typescript
public readonly clusterIdentifier: string;
```

- *Type:* string

Identifier of the cluster.

---

##### `clusterReadEndpoint`<sup>Required</sup> <a name="clusterReadEndpoint" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.clusterReadEndpoint"></a>

```typescript
public readonly clusterReadEndpoint: Endpoint;
```

- *Type:* aws-cdk-lib.aws_rds.Endpoint

Endpoint to use for load-balanced read-only operations.

---

##### `clusterResourceIdentifier`<sup>Required</sup> <a name="clusterResourceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.clusterResourceIdentifier"></a>

```typescript
public readonly clusterResourceIdentifier: string;
```

- *Type:* string

The immutable identifier for the cluster; for example: cluster-ABCD1234EFGH5678IJKL90MNOP.

This AWS Region-unique identifier is used in things like IAM authentication policies.

---

##### `connections`<sup>Required</sup> <a name="connections" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.connections"></a>

```typescript
public readonly connections: Connections;
```

- *Type:* aws-cdk-lib.aws_ec2.Connections

Access to the network connections.

---

##### `dbClusterRef`<sup>Required</sup> <a name="dbClusterRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.dbClusterRef"></a>

```typescript
public readonly dbClusterRef: DBClusterReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_rds.DBClusterReference

A reference to this database cluster.

---

##### `instanceEndpoints`<sup>Required</sup> <a name="instanceEndpoints" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.instanceEndpoints"></a>

```typescript
public readonly instanceEndpoints: Endpoint[];
```

- *Type:* aws-cdk-lib.aws_rds.Endpoint[]

Endpoints which address each individual replica.

---

##### `instanceIdentifiers`<sup>Required</sup> <a name="instanceIdentifiers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.instanceIdentifiers"></a>

```typescript
public readonly instanceIdentifiers: string[];
```

- *Type:* string[]

Identifiers of the replicas.

---

##### `engine`<sup>Optional</sup> <a name="engine" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.engine"></a>

```typescript
public readonly engine: IClusterEngine;
```

- *Type:* aws-cdk-lib.aws_rds.IClusterEngine

The engine for this Cluster.

Never undefined.

---

##### `secret`<sup>Optional</sup> <a name="secret" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.secret"></a>

```typescript
public readonly secret: ISecret;
```

- *Type:* aws-cdk-lib.aws_secretsmanager.ISecret

The secret attached to this cluster.

---

##### `cloudwatchLogGroups`<sup>Required</sup> <a name="cloudwatchLogGroups" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.cloudwatchLogGroups"></a>

```typescript
public readonly cloudwatchLogGroups: {[ key: string ]: ILogGroup};
```

- *Type:* {[ key: string ]: aws-cdk-lib.aws_logs.ILogGroup}

The log group is created when `cloudwatchLogsExports` is set.

Each export value will create a separate log group.

---

##### `multiUserRotationApplication`<sup>Required</sup> <a name="multiUserRotationApplication" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.multiUserRotationApplication"></a>

```typescript
public readonly multiUserRotationApplication: SecretRotationApplication;
```

- *Type:* aws-cdk-lib.aws_secretsmanager.SecretRotationApplication

Application for multi user rotation to this cluster.

---

##### `performanceInsightsEnabled`<sup>Required</sup> <a name="performanceInsightsEnabled" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.performanceInsightsEnabled"></a>

```typescript
public readonly performanceInsightsEnabled: boolean;
```

- *Type:* boolean

Whether Performance Insights is enabled at cluster level.

---

##### `singleUserRotationApplication`<sup>Required</sup> <a name="singleUserRotationApplication" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.singleUserRotationApplication"></a>

```typescript
public readonly singleUserRotationApplication: SecretRotationApplication;
```

- *Type:* aws-cdk-lib.aws_secretsmanager.SecretRotationApplication

Application for single user rotation of the master password to this cluster.

---

##### `vpc`<sup>Required</sup> <a name="vpc" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.vpc"></a>

```typescript
public readonly vpc: IVpc;
```

- *Type:* aws-cdk-lib.aws_ec2.IVpc

The VPC network to place the cluster in.

---

##### `databaseInsightsMode`<sup>Optional</sup> <a name="databaseInsightsMode" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.databaseInsightsMode"></a>

```typescript
public readonly databaseInsightsMode: DatabaseInsightsMode;
```

- *Type:* aws-cdk-lib.aws_rds.DatabaseInsightsMode

The database insights mode.

---

##### `monitoringRole`<sup>Optional</sup> <a name="monitoringRole" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.monitoringRole"></a>

```typescript
public readonly monitoringRole: IRole;
```

- *Type:* aws-cdk-lib.aws_iam.IRole

The IAM role for the enhanced monitoring.

---

##### `performanceInsightEncryptionKey`<sup>Optional</sup> <a name="performanceInsightEncryptionKey" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.performanceInsightEncryptionKey"></a>

```typescript
public readonly performanceInsightEncryptionKey: IKey;
```

- *Type:* aws-cdk-lib.aws_kms.IKey

The AWS KMS key for encryption of Performance Insights data.

---

##### `performanceInsightRetention`<sup>Optional</sup> <a name="performanceInsightRetention" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.performanceInsightRetention"></a>

```typescript
public readonly performanceInsightRetention: PerformanceInsightRetention;
```

- *Type:* aws-cdk-lib.aws_rds.PerformanceInsightRetention

The amount of time, in days, to retain Performance Insights data.

---

##### `vpcSubnets`<sup>Optional</sup> <a name="vpcSubnets" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.vpcSubnets"></a>

```typescript
public readonly vpcSubnets: SubnetSelection;
```

- *Type:* aws-cdk-lib.aws_ec2.SubnetSelection

The cluster's subnets.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseCluster.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### DatabaseInstance <a name="DatabaseInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance"></a>

An extension of the rds instance (database or cluster instance) construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.Initializer"></a>

```typescript
import { DatabaseInstance } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DatabaseInstance(scope: Construct, id: string, props: DatabaseInstanceProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_rds.DatabaseInstanceProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_rds.DatabaseInstanceProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.addProxy">addProxy</a></code> | Add a new db proxy to this instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.asSecretAttachmentTarget">asSecretAttachmentTarget</a></code> | Renders the secret attachment target specifications. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.grantConnect">grantConnect</a></code> | Grant the given identity connection access to the database. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metric">metric</a></code> | Return the given named metric for this DBInstance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricCPUUtilization">metricCPUUtilization</a></code> | The percentage of CPU utilization. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricDatabaseConnections">metricDatabaseConnections</a></code> | The number of database connections in use. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricFreeableMemory">metricFreeableMemory</a></code> | The amount of available random access memory. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricFreeStorageSpace">metricFreeStorageSpace</a></code> | The amount of available storage space. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricReadIOPS">metricReadIOPS</a></code> | The average number of disk read I/O operations per second. The average number of disk write I/O operations per second. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricWriteIOPS">metricWriteIOPS</a></code> | The average number of disk write I/O operations per second. The average number of disk read I/O operations per second. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.onEvent">onEvent</a></code> | Defines a CloudWatch event rule which triggers for instance events. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.addRotationMultiUser">addRotationMultiUser</a></code> | Adds the multi user rotation to this instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.addRotationSingleUser">addRotationSingleUser</a></code> | Adds the single user rotation of the master password to this instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmCpuUtilization">alarmCpuUtilization</a></code> | Creates an alarm that monitors the CpuUtilization. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmDatabaseConnections">alarmDatabaseConnections</a></code> | Creates an alarm that monitors the DatabaseConnections. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmDbLoad">alarmDbLoad</a></code> | Creates an alarm that monitors the DbLoad. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmFreeableMemory">alarmFreeableMemory</a></code> | Creates an alarm that monitors the FreeableMemory. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmFreeLocalStorage">alarmFreeLocalStorage</a></code> | Creates an alarm that monitors the FreeLocalStorage. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmFreeStorageSpace">alarmFreeStorageSpace</a></code> | Creates an alarm that monitors the FreeStorageSpace. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmReadLatency">alarmReadLatency</a></code> | Creates an alarm that monitors the ReadLatency. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmWriteLatency">alarmWriteLatency</a></code> | Creates an alarm that monitors the WriteLatency. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates recommended alarms for the database instance. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addProxy` <a name="addProxy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.addProxy"></a>

```typescript
public addProxy(id: string, options: DatabaseProxyOptions): DatabaseProxy
```

Add a new db proxy to this instance.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.addProxy.parameter.id"></a>

- *Type:* string

---

###### `options`<sup>Required</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.addProxy.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_rds.DatabaseProxyOptions

---

##### `asSecretAttachmentTarget` <a name="asSecretAttachmentTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.asSecretAttachmentTarget"></a>

```typescript
public asSecretAttachmentTarget(): SecretAttachmentTargetProps
```

Renders the secret attachment target specifications.

##### `grantConnect` <a name="grantConnect" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.grantConnect"></a>

```typescript
public grantConnect(grantee: IGrantable, dbUser?: string): Grant
```

Grant the given identity connection access to the database.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.grantConnect.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

the Principal to grant the permissions to.

---

###### `dbUser`<sup>Optional</sup> <a name="dbUser" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.grantConnect.parameter.dbUser"></a>

- *Type:* string

the name of the database user to allow connecting as to the db instance, or the default database user, obtained from the Secret, if not specified.

---

##### `metric` <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metric"></a>

```typescript
public metric(metricName: string, props?: MetricOptions): Metric
```

Return the given named metric for this DBInstance.

###### `metricName`<sup>Required</sup> <a name="metricName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metric.parameter.metricName"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metric.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricCPUUtilization` <a name="metricCPUUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricCPUUtilization"></a>

```typescript
public metricCPUUtilization(props?: MetricOptions): Metric
```

The percentage of CPU utilization.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricCPUUtilization.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricDatabaseConnections` <a name="metricDatabaseConnections" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricDatabaseConnections"></a>

```typescript
public metricDatabaseConnections(props?: MetricOptions): Metric
```

The number of database connections in use.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricDatabaseConnections.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricFreeableMemory` <a name="metricFreeableMemory" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricFreeableMemory"></a>

```typescript
public metricFreeableMemory(props?: MetricOptions): Metric
```

The amount of available random access memory.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricFreeableMemory.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricFreeStorageSpace` <a name="metricFreeStorageSpace" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricFreeStorageSpace"></a>

```typescript
public metricFreeStorageSpace(props?: MetricOptions): Metric
```

The amount of available storage space.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricFreeStorageSpace.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricReadIOPS` <a name="metricReadIOPS" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricReadIOPS"></a>

```typescript
public metricReadIOPS(props?: MetricOptions): Metric
```

The average number of disk read I/O operations per second. The average number of disk write I/O operations per second.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricReadIOPS.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricWriteIOPS` <a name="metricWriteIOPS" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricWriteIOPS"></a>

```typescript
public metricWriteIOPS(props?: MetricOptions): Metric
```

The average number of disk write I/O operations per second. The average number of disk read I/O operations per second.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.metricWriteIOPS.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `onEvent` <a name="onEvent" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.onEvent"></a>

```typescript
public onEvent(id: string, options?: OnEventOptions): Rule
```

Defines a CloudWatch event rule which triggers for instance events.

Use
`rule.addEventPattern(pattern)` to specify a filter.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.onEvent.parameter.id"></a>

- *Type:* string

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.onEvent.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_events.OnEventOptions

---

##### `addRotationMultiUser` <a name="addRotationMultiUser" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.addRotationMultiUser"></a>

```typescript
public addRotationMultiUser(id: string, options: RotationMultiUserOptions): SecretRotation
```

Adds the multi user rotation to this instance.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.addRotationMultiUser.parameter.id"></a>

- *Type:* string

---

###### `options`<sup>Required</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.addRotationMultiUser.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_rds.RotationMultiUserOptions

---

##### `addRotationSingleUser` <a name="addRotationSingleUser" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.addRotationSingleUser"></a>

```typescript
public addRotationSingleUser(options?: RotationSingleUserOptions): SecretRotation
```

Adds the single user rotation of the master password to this instance.

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.addRotationSingleUser.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_rds.RotationSingleUserOptions

the options for the rotation, if you want to override the defaults.

---

##### `alarmCpuUtilization` <a name="alarmCpuUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmCpuUtilization"></a>

```typescript
public alarmCpuUtilization(props?: RdsCpuUtilizationAlarmConfig): RdsInstanceCpuUtilizationAlarm
```

Creates an alarm that monitors the CpuUtilization.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmCpuUtilization.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig">RdsCpuUtilizationAlarmConfig</a>

---

##### `alarmDatabaseConnections` <a name="alarmDatabaseConnections" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmDatabaseConnections"></a>

```typescript
public alarmDatabaseConnections(props: RdsDatabaseConnectionsAlarmConfig): RdsInstanceDatabaseConnectionsAlarm
```

Creates an alarm that monitors the DatabaseConnections.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmDatabaseConnections.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig">RdsDatabaseConnectionsAlarmConfig</a>

---

##### `alarmDbLoad` <a name="alarmDbLoad" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmDbLoad"></a>

```typescript
public alarmDbLoad(props: RdsDbLoadAlarmConfig): RdsInstanceDbLoadAlarm
```

Creates an alarm that monitors the DbLoad.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmDbLoad.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig">RdsDbLoadAlarmConfig</a>

---

##### `alarmFreeableMemory` <a name="alarmFreeableMemory" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmFreeableMemory"></a>

```typescript
public alarmFreeableMemory(props: RdsFreeableMemoryAlarmConfig): RdsInstanceFreeableMemoryAlarm
```

Creates an alarm that monitors the FreeableMemory.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmFreeableMemory.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig">RdsFreeableMemoryAlarmConfig</a>

---

##### `alarmFreeLocalStorage` <a name="alarmFreeLocalStorage" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmFreeLocalStorage"></a>

```typescript
public alarmFreeLocalStorage(props: RdsFreeLocalStorageAlarmConfig): RdsInstanceFreeLocalStorageAlarm
```

Creates an alarm that monitors the FreeLocalStorage.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmFreeLocalStorage.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig">RdsFreeLocalStorageAlarmConfig</a>

---

##### `alarmFreeStorageSpace` <a name="alarmFreeStorageSpace" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmFreeStorageSpace"></a>

```typescript
public alarmFreeStorageSpace(props: RdsFreeStorageSpaceAlarmConfig): RdsInstanceFreeStorageSpaceAlarm
```

Creates an alarm that monitors the FreeStorageSpace.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmFreeStorageSpace.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig">RdsFreeStorageSpaceAlarmConfig</a>

---

##### `alarmReadLatency` <a name="alarmReadLatency" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmReadLatency"></a>

```typescript
public alarmReadLatency(props: RdsReadLatencyAlarmConfig): RdsInstanceReadLatencyAlarm
```

Creates an alarm that monitors the ReadLatency.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmReadLatency.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig">RdsReadLatencyAlarmConfig</a>

---

##### `alarmWriteLatency` <a name="alarmWriteLatency" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmWriteLatency"></a>

```typescript
public alarmWriteLatency(props: RdsWriteLatencyAlarmConfig): RdsInstanceWriteLatencyAlarm
```

Creates an alarm that monitors the WriteLatency.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.alarmWriteLatency.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig">RdsWriteLatencyAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: RdsInstanceRecommendedAlarmsConfig): RdsInstanceRecommendedAlarms
```

Creates recommended alarms for the database instance.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#RDS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#RDS)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig">RdsInstanceRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.fromDatabaseInstanceAttributes">fromDatabaseInstanceAttributes</a></code> | Import an existing database instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.fromLookup">fromLookup</a></code> | Lookup an existing DatabaseInstance using instanceIdentifier. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.isConstruct"></a>

```typescript
import { DatabaseInstance } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DatabaseInstance.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.isOwnedResource"></a>

```typescript
import { DatabaseInstance } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DatabaseInstance.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.isResource"></a>

```typescript
import { DatabaseInstance } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DatabaseInstance.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromDatabaseInstanceAttributes` <a name="fromDatabaseInstanceAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.fromDatabaseInstanceAttributes"></a>

```typescript
import { DatabaseInstance } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DatabaseInstance.fromDatabaseInstanceAttributes(scope: Construct, id: string, attrs: DatabaseInstanceAttributes)
```

Import an existing database instance.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.fromDatabaseInstanceAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.fromDatabaseInstanceAttributes.parameter.id"></a>

- *Type:* string

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.fromDatabaseInstanceAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_rds.DatabaseInstanceAttributes

---

##### `fromLookup` <a name="fromLookup" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.fromLookup"></a>

```typescript
import { DatabaseInstance } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DatabaseInstance.fromLookup(scope: Construct, id: string, options: DatabaseInstanceLookupOptions)
```

Lookup an existing DatabaseInstance using instanceIdentifier.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.fromLookup.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.fromLookup.parameter.id"></a>

- *Type:* string

---

###### `options`<sup>Required</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.fromLookup.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_rds.DatabaseInstanceLookupOptions

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.connections">connections</a></code> | <code>aws-cdk-lib.aws_ec2.Connections</code> | Access to network connections. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.dbInstanceEndpointAddress">dbInstanceEndpointAddress</a></code> | <code>string</code> | The instance endpoint address. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.dbInstanceEndpointPort">dbInstanceEndpointPort</a></code> | <code>string</code> | The instance endpoint port. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.dbInstanceRef">dbInstanceRef</a></code> | <code>aws-cdk-lib.interfaces.aws_rds.DBInstanceReference</code> | A reference to this database instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.instanceArn">instanceArn</a></code> | <code>string</code> | The instance arn. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.instanceEndpoint">instanceEndpoint</a></code> | <code>aws-cdk-lib.aws_rds.Endpoint</code> | The instance endpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.instanceIdentifier">instanceIdentifier</a></code> | <code>string</code> | The instance identifier. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.engine">engine</a></code> | <code>aws-cdk-lib.aws_rds.IInstanceEngine</code> | The engine of this database Instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.instanceResourceId">instanceResourceId</a></code> | <code>string</code> | The AWS Region-unique, immutable identifier for the DB instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.cloudwatchLogGroups">cloudwatchLogGroups</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_logs.ILogGroup}</code> | The log group is created when `cloudwatchLogsExports` is set. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | The VPC where this database instance is deployed. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.secret">secret</a></code> | <code>aws-cdk-lib.aws_secretsmanager.ISecret</code> | The AWS Secrets Manager secret attached to the instance. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `connections`<sup>Required</sup> <a name="connections" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.connections"></a>

```typescript
public readonly connections: Connections;
```

- *Type:* aws-cdk-lib.aws_ec2.Connections

Access to network connections.

---

##### `dbInstanceEndpointAddress`<sup>Required</sup> <a name="dbInstanceEndpointAddress" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.dbInstanceEndpointAddress"></a>

```typescript
public readonly dbInstanceEndpointAddress: string;
```

- *Type:* string

The instance endpoint address.

---

##### `dbInstanceEndpointPort`<sup>Required</sup> <a name="dbInstanceEndpointPort" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.dbInstanceEndpointPort"></a>

```typescript
public readonly dbInstanceEndpointPort: string;
```

- *Type:* string

The instance endpoint port.

---

##### `dbInstanceRef`<sup>Required</sup> <a name="dbInstanceRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.dbInstanceRef"></a>

```typescript
public readonly dbInstanceRef: DBInstanceReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_rds.DBInstanceReference

A reference to this database instance.

---

##### `instanceArn`<sup>Required</sup> <a name="instanceArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.instanceArn"></a>

```typescript
public readonly instanceArn: string;
```

- *Type:* string

The instance arn.

---

##### `instanceEndpoint`<sup>Required</sup> <a name="instanceEndpoint" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.instanceEndpoint"></a>

```typescript
public readonly instanceEndpoint: Endpoint;
```

- *Type:* aws-cdk-lib.aws_rds.Endpoint

The instance endpoint.

---

##### `instanceIdentifier`<sup>Required</sup> <a name="instanceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.instanceIdentifier"></a>

```typescript
public readonly instanceIdentifier: string;
```

- *Type:* string

The instance identifier.

---

##### `engine`<sup>Optional</sup> <a name="engine" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.engine"></a>

```typescript
public readonly engine: IInstanceEngine;
```

- *Type:* aws-cdk-lib.aws_rds.IInstanceEngine

The engine of this database Instance.

May be not known for imported Instances if it wasn't provided explicitly,
or for read replicas.

---

##### `instanceResourceId`<sup>Optional</sup> <a name="instanceResourceId" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.instanceResourceId"></a>

```typescript
public readonly instanceResourceId: string;
```

- *Type:* string

The AWS Region-unique, immutable identifier for the DB instance.

This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed.

---

##### `cloudwatchLogGroups`<sup>Required</sup> <a name="cloudwatchLogGroups" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.cloudwatchLogGroups"></a>

```typescript
public readonly cloudwatchLogGroups: {[ key: string ]: ILogGroup};
```

- *Type:* {[ key: string ]: aws-cdk-lib.aws_logs.ILogGroup}

The log group is created when `cloudwatchLogsExports` is set.

Each export value will create a separate log group.

---

##### `vpc`<sup>Required</sup> <a name="vpc" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.vpc"></a>

```typescript
public readonly vpc: IVpc;
```

- *Type:* aws-cdk-lib.aws_ec2.IVpc

The VPC where this database instance is deployed.

---

##### `secret`<sup>Optional</sup> <a name="secret" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.secret"></a>

```typescript
public readonly secret: ISecret;
```

- *Type:* aws-cdk-lib.aws_secretsmanager.ISecret

The AWS Secrets Manager secret attached to the instance.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.DatabaseInstance.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### Distribution <a name="Distribution" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution"></a>

An extension for the Distribution construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.Initializer"></a>

```typescript
import { Distribution } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new Distribution(scope: Construct, id: string, props: DistributionProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_cloudfront.DistributionProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudfront.DistributionProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.addBehavior">addBehavior</a></code> | Adds a new behavior to this distribution for the given pathPattern. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.attachWebAclId">attachWebAclId</a></code> | Attach WAF WebACL to this CloudFront distribution. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.grant">grant</a></code> | Adds an IAM policy statement associated with this distribution to an IAM principal's policy. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.grantCreateInvalidation">grantCreateInvalidation</a></code> | Grant to create invalidations for this bucket to an IAM principal (Role/Group/User). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric">metric</a></code> | Return the given named metric for this Distribution. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric401ErrorRate">metric401ErrorRate</a></code> | Metric for the percentage of all viewer requests for which the response's HTTP status code is 401. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric403ErrorRate">metric403ErrorRate</a></code> | Metric for the percentage of all viewer requests for which the response's HTTP status code is 403. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric404ErrorRate">metric404ErrorRate</a></code> | Metric for the percentage of all viewer requests for which the response's HTTP status code is 404. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric4xxErrorRate">metric4xxErrorRate</a></code> | Metric for the percentage of all viewer requests for which the response's HTTP status code is 4xx. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric502ErrorRate">metric502ErrorRate</a></code> | Metric for the percentage of all viewer requests for which the response's HTTP status code is 502. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric503ErrorRate">metric503ErrorRate</a></code> | Metric for the percentage of all viewer requests for which the response's HTTP status code is 503. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric504ErrorRate">metric504ErrorRate</a></code> | Metric for the percentage of all viewer requests for which the response's HTTP status code is 504. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric5xxErrorRate">metric5xxErrorRate</a></code> | Metric for the percentage of all viewer requests for which the response's HTTP status code is 5xx. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricBytesDownloaded">metricBytesDownloaded</a></code> | Metric for the total number of bytes downloaded by viewers for GET, HEAD, and OPTIONS requests. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricBytesUploaded">metricBytesUploaded</a></code> | Metric for the total number of bytes that viewers uploaded to your origin with CloudFront, using POST and PUT requests. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricCacheHitRate">metricCacheHitRate</a></code> | Metric for the percentage of all cacheable requests for which CloudFront served the content from its cache. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricOriginLatency">metricOriginLatency</a></code> | Metric for the total time spent from when CloudFront receives a request to when it starts providing a response to the network (not the viewer), for requests that are served from the origin, not the CloudFront cache. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricRequests">metricRequests</a></code> | Metric for the total number of viewer requests received by CloudFront, for all HTTP methods and for both HTTP and HTTPS requests. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricTotalErrorRate">metricTotalErrorRate</a></code> | Metric for the percentage of all viewer requests for which the response's HTTP status code is 4xx or 5xx. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.alarm5xxErrorRate">alarm5xxErrorRate</a></code> | Creates an alarm that monitors the 5xxErrorRate for the CloudFront distribution. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.alarmDetailedFunctionExecutionErrors">alarmDetailedFunctionExecutionErrors</a></code> | Creates a list of alarms that monitor the total number of execution errors produced by the function in a given time period. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.alarmDetailedFunctionThrottles">alarmDetailedFunctionThrottles</a></code> | Creates a list of alarms that monitor the total number of times that the function was throttled in a given time period. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.alarmDetailedFunctionValidationErrors">alarmDetailedFunctionValidationErrors</a></code> | Creates a list of alarms that monitor the total number of validation errors produced by the function in a given time period. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.alarmOriginLatency">alarmOriginLatency</a></code> | Creates an alarm that monitors the OriginLatency for the CloudFront distribution. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the CloudFront Distribution. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addBehavior` <a name="addBehavior" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.addBehavior"></a>

```typescript
public addBehavior(pathPattern: string, origin: IOrigin, behaviorOptions?: AddBehaviorOptions): void
```

Adds a new behavior to this distribution for the given pathPattern.

###### `pathPattern`<sup>Required</sup> <a name="pathPattern" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.addBehavior.parameter.pathPattern"></a>

- *Type:* string

the path pattern (e.g., 'images/*') that specifies which requests to apply the behavior to.

---

###### `origin`<sup>Required</sup> <a name="origin" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.addBehavior.parameter.origin"></a>

- *Type:* aws-cdk-lib.aws_cloudfront.IOrigin

the origin to use for this behavior.

---

###### `behaviorOptions`<sup>Optional</sup> <a name="behaviorOptions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.addBehavior.parameter.behaviorOptions"></a>

- *Type:* aws-cdk-lib.aws_cloudfront.AddBehaviorOptions

the options for the behavior at this path.

---

##### `attachWebAclId` <a name="attachWebAclId" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.attachWebAclId"></a>

```typescript
public attachWebAclId(webAclId: string): void
```

Attach WAF WebACL to this CloudFront distribution.

WebACL must be in the us-east-1 region

###### `webAclId`<sup>Required</sup> <a name="webAclId" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.attachWebAclId.parameter.webAclId"></a>

- *Type:* string

The WAF WebACL to associate with this distribution.

---

##### `grant` <a name="grant" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.grant"></a>

```typescript
public grant(identity: IGrantable, actions: ...string[]): Grant
```

Adds an IAM policy statement associated with this distribution to an IAM principal's policy.

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.grant.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal.

---

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.grant.parameter.actions"></a>

- *Type:* ...string[]

The set of actions to allow (i.e. "cloudfront:ListInvalidations").

---

##### `grantCreateInvalidation` <a name="grantCreateInvalidation" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.grantCreateInvalidation"></a>

```typescript
public grantCreateInvalidation(identity: IGrantable): Grant
```

Grant to create invalidations for this bucket to an IAM principal (Role/Group/User).

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.grantCreateInvalidation.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal.

---

##### `metric` <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric"></a>

```typescript
public metric(metricName: string, props?: MetricOptions): Metric
```

Return the given named metric for this Distribution.

###### `metricName`<sup>Required</sup> <a name="metricName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric.parameter.metricName"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metric401ErrorRate` <a name="metric401ErrorRate" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric401ErrorRate"></a>

```typescript
public metric401ErrorRate(props?: MetricOptions): Metric
```

Metric for the percentage of all viewer requests for which the response's HTTP status code is 401.

To obtain this metric, you need to set `publishAdditionalMetrics` to `true`.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric401ErrorRate.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metric403ErrorRate` <a name="metric403ErrorRate" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric403ErrorRate"></a>

```typescript
public metric403ErrorRate(props?: MetricOptions): Metric
```

Metric for the percentage of all viewer requests for which the response's HTTP status code is 403.

To obtain this metric, you need to set `publishAdditionalMetrics` to `true`.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric403ErrorRate.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metric404ErrorRate` <a name="metric404ErrorRate" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric404ErrorRate"></a>

```typescript
public metric404ErrorRate(props?: MetricOptions): Metric
```

Metric for the percentage of all viewer requests for which the response's HTTP status code is 404.

To obtain this metric, you need to set `publishAdditionalMetrics` to `true`.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric404ErrorRate.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metric4xxErrorRate` <a name="metric4xxErrorRate" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric4xxErrorRate"></a>

```typescript
public metric4xxErrorRate(props?: MetricOptions): Metric
```

Metric for the percentage of all viewer requests for which the response's HTTP status code is 4xx.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric4xxErrorRate.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metric502ErrorRate` <a name="metric502ErrorRate" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric502ErrorRate"></a>

```typescript
public metric502ErrorRate(props?: MetricOptions): Metric
```

Metric for the percentage of all viewer requests for which the response's HTTP status code is 502.

To obtain this metric, you need to set `publishAdditionalMetrics` to `true`.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric502ErrorRate.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metric503ErrorRate` <a name="metric503ErrorRate" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric503ErrorRate"></a>

```typescript
public metric503ErrorRate(props?: MetricOptions): Metric
```

Metric for the percentage of all viewer requests for which the response's HTTP status code is 503.

To obtain this metric, you need to set `publishAdditionalMetrics` to `true`.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric503ErrorRate.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metric504ErrorRate` <a name="metric504ErrorRate" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric504ErrorRate"></a>

```typescript
public metric504ErrorRate(props?: MetricOptions): Metric
```

Metric for the percentage of all viewer requests for which the response's HTTP status code is 504.

To obtain this metric, you need to set `publishAdditionalMetrics` to `true`.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric504ErrorRate.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metric5xxErrorRate` <a name="metric5xxErrorRate" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric5xxErrorRate"></a>

```typescript
public metric5xxErrorRate(props?: MetricOptions): Metric
```

Metric for the percentage of all viewer requests for which the response's HTTP status code is 5xx.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metric5xxErrorRate.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricBytesDownloaded` <a name="metricBytesDownloaded" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricBytesDownloaded"></a>

```typescript
public metricBytesDownloaded(props?: MetricOptions): Metric
```

Metric for the total number of bytes downloaded by viewers for GET, HEAD, and OPTIONS requests.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricBytesDownloaded.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricBytesUploaded` <a name="metricBytesUploaded" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricBytesUploaded"></a>

```typescript
public metricBytesUploaded(props?: MetricOptions): Metric
```

Metric for the total number of bytes that viewers uploaded to your origin with CloudFront, using POST and PUT requests.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricBytesUploaded.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricCacheHitRate` <a name="metricCacheHitRate" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricCacheHitRate"></a>

```typescript
public metricCacheHitRate(props?: MetricOptions): Metric
```

Metric for the percentage of all cacheable requests for which CloudFront served the content from its cache.

HTTP POST and PUT requests, and errors, are not considered cacheable requests.

To obtain this metric, you need to set `publishAdditionalMetrics` to `true`.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricCacheHitRate.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricOriginLatency` <a name="metricOriginLatency" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricOriginLatency"></a>

```typescript
public metricOriginLatency(props?: MetricOptions): Metric
```

Metric for the total time spent from when CloudFront receives a request to when it starts providing a response to the network (not the viewer), for requests that are served from the origin, not the CloudFront cache.

This is also known as first byte latency, or time-to-first-byte.

To obtain this metric, you need to set `publishAdditionalMetrics` to `true`.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricOriginLatency.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricRequests` <a name="metricRequests" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricRequests"></a>

```typescript
public metricRequests(props?: MetricOptions): Metric
```

Metric for the total number of viewer requests received by CloudFront, for all HTTP methods and for both HTTP and HTTPS requests.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricRequests.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricTotalErrorRate` <a name="metricTotalErrorRate" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricTotalErrorRate"></a>

```typescript
public metricTotalErrorRate(props?: MetricOptions): Metric
```

Metric for the percentage of all viewer requests for which the response's HTTP status code is 4xx or 5xx.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.metricTotalErrorRate.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `alarm5xxErrorRate` <a name="alarm5xxErrorRate" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.alarm5xxErrorRate"></a>

```typescript
public alarm5xxErrorRate(props: CloudFront5xxErrorRateAlarmConfig): CloudFrontDistribution5xxErrorRateAlarm
```

Creates an alarm that monitors the 5xxErrorRate for the CloudFront distribution.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.alarm5xxErrorRate.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig">CloudFront5xxErrorRateAlarmConfig</a>

---

##### `alarmDetailedFunctionExecutionErrors` <a name="alarmDetailedFunctionExecutionErrors" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.alarmDetailedFunctionExecutionErrors"></a>

```typescript
public alarmDetailedFunctionExecutionErrors(props: CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig[]): CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm[]
```

Creates a list of alarms that monitor the total number of execution errors produced by the function in a given time period.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.alarmDetailedFunctionExecutionErrors.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig">CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig</a>[]

---

##### `alarmDetailedFunctionThrottles` <a name="alarmDetailedFunctionThrottles" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.alarmDetailedFunctionThrottles"></a>

```typescript
public alarmDetailedFunctionThrottles(props: CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig[]): CloudFrontDistributionDetailedFunctionThrottlesAlarm[]
```

Creates a list of alarms that monitor the total number of times that the function was throttled in a given time period.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.alarmDetailedFunctionThrottles.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig">CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig</a>[]

---

##### `alarmDetailedFunctionValidationErrors` <a name="alarmDetailedFunctionValidationErrors" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.alarmDetailedFunctionValidationErrors"></a>

```typescript
public alarmDetailedFunctionValidationErrors(props: CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig[]): CloudFrontDistributionDetailedFunctionValidationErrorsAlarm[]
```

Creates a list of alarms that monitor the total number of validation errors produced by the function in a given time period.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.alarmDetailedFunctionValidationErrors.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig">CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig</a>[]

---

##### `alarmOriginLatency` <a name="alarmOriginLatency" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.alarmOriginLatency"></a>

```typescript
public alarmOriginLatency(props: CloudFrontOriginLatencyAlarmConfig): CloudFrontDistributionOriginLatencyAlarm
```

Creates an alarm that monitors the OriginLatency for the CloudFront distribution.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.alarmOriginLatency.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig">CloudFrontOriginLatencyAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: CloudFrontDistributionRecommendedAlarmsConfig): CloudFrontDistributionRecommendedAlarms
```

Creates the recommended alarms for the CloudFront Distribution.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#CloudFront](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#CloudFront)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig">CloudFrontDistributionRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.fromDistributionAttributes">fromDistributionAttributes</a></code> | Creates a Distribution construct that represents an external (imported) distribution. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.isConstruct"></a>

```typescript
import { Distribution } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Distribution.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.isOwnedResource"></a>

```typescript
import { Distribution } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Distribution.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.isResource"></a>

```typescript
import { Distribution } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Distribution.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromDistributionAttributes` <a name="fromDistributionAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.fromDistributionAttributes"></a>

```typescript
import { Distribution } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Distribution.fromDistributionAttributes(scope: Construct, id: string, attrs: DistributionAttributes)
```

Creates a Distribution construct that represents an external (imported) distribution.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.fromDistributionAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.fromDistributionAttributes.parameter.id"></a>

- *Type:* string

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.fromDistributionAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_cloudfront.DistributionAttributes

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.distributionArn">distributionArn</a></code> | <code>string</code> | The distribution ARN for this distribution. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.distributionDomainName">distributionDomainName</a></code> | <code>string</code> | The domain name of the Distribution, such as d111111abcdef8.cloudfront.net. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.distributionId">distributionId</a></code> | <code>string</code> | The distribution ID for this distribution. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.distributionRef">distributionRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudfront.DistributionReference</code> | A reference to a Distribution resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.domainName">domainName</a></code> | <code>string</code> | The domain name of the Distribution, such as d111111abcdef8.cloudfront.net. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.grants">grants</a></code> | <code>aws-cdk-lib.aws_cloudfront.DistributionGrants</code> | Collection of grant methods for a Distribution. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `distributionArn`<sup>Required</sup> <a name="distributionArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.distributionArn"></a>

```typescript
public readonly distributionArn: string;
```

- *Type:* string

The distribution ARN for this distribution.

---

##### `distributionDomainName`<sup>Required</sup> <a name="distributionDomainName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.distributionDomainName"></a>

```typescript
public readonly distributionDomainName: string;
```

- *Type:* string

The domain name of the Distribution, such as d111111abcdef8.cloudfront.net.

---

##### `distributionId`<sup>Required</sup> <a name="distributionId" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.distributionId"></a>

```typescript
public readonly distributionId: string;
```

- *Type:* string

The distribution ID for this distribution.

---

##### `distributionRef`<sup>Required</sup> <a name="distributionRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.distributionRef"></a>

```typescript
public readonly distributionRef: DistributionReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudfront.DistributionReference

A reference to a Distribution resource.

---

##### `domainName`<sup>Required</sup> <a name="domainName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.domainName"></a>

```typescript
public readonly domainName: string;
```

- *Type:* string

The domain name of the Distribution, such as d111111abcdef8.cloudfront.net.

---

##### `grants`<sup>Required</sup> <a name="grants" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.grants"></a>

```typescript
public readonly grants: DistributionGrants;
```

- *Type:* aws-cdk-lib.aws_cloudfront.DistributionGrants

Collection of grant methods for a Distribution.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.Distribution.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### DmsReplicationInstanceCpuUtilizationAlarm <a name="DmsReplicationInstanceCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm"></a>

This alarm is used to detect high CPU utilization for the DMS Replication Instance.

Consistent high CPU utilization can indicate a resource bottleneck or application
performance problems.

The alarm is triggered when CPU utilization exceeds % threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.Initializer"></a>

```typescript
import { DmsReplicationInstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DmsReplicationInstanceCpuUtilizationAlarm(scope: IConstruct, id: string, props: DmsReplicationInstanceCpuUtilizationAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps">DmsReplicationInstanceCpuUtilizationAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps">DmsReplicationInstanceCpuUtilizationAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.isConstruct"></a>

```typescript
import { DmsReplicationInstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceCpuUtilizationAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.isOwnedResource"></a>

```typescript
import { DmsReplicationInstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceCpuUtilizationAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.isResource"></a>

```typescript
import { DmsReplicationInstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceCpuUtilizationAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.fromAlarmArn"></a>

```typescript
import { DmsReplicationInstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceCpuUtilizationAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.fromAlarmName"></a>

```typescript
import { DmsReplicationInstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceCpuUtilizationAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### DmsReplicationInstanceFreeableMemoryAlarm <a name="DmsReplicationInstanceFreeableMemoryAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm"></a>

An alarm that monitors the amount of available memory (RAM) on the replication instance.

This alarm is used to help prevent running out of memory.

The alarm is triggered when the percentage of available memory is less than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.Initializer"></a>

```typescript
import { DmsReplicationInstanceFreeableMemoryAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DmsReplicationInstanceFreeableMemoryAlarm(scope: Construct, id: string, props: DmsReplicationInstanceFreeableMemoryAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps">DmsReplicationInstanceFreeableMemoryAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps">DmsReplicationInstanceFreeableMemoryAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.isConstruct"></a>

```typescript
import { DmsReplicationInstanceFreeableMemoryAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceFreeableMemoryAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.isOwnedResource"></a>

```typescript
import { DmsReplicationInstanceFreeableMemoryAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceFreeableMemoryAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.isResource"></a>

```typescript
import { DmsReplicationInstanceFreeableMemoryAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceFreeableMemoryAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.fromAlarmArn"></a>

```typescript
import { DmsReplicationInstanceFreeableMemoryAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceFreeableMemoryAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.fromAlarmName"></a>

```typescript
import { DmsReplicationInstanceFreeableMemoryAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceFreeableMemoryAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### DmsReplicationInstanceFreeStorageSpaceAlarm <a name="DmsReplicationInstanceFreeStorageSpaceAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm"></a>

An alarm that monitors the amount of available storage space for a DMS Replication Instance.

This alarm helps prevent storage full issues. This can prevent downtime that occurs when your replication
instance runs out of storage.

The alarm is triggered when the amount of available storage space (bytes) is less than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.Initializer"></a>

```typescript
import { DmsReplicationInstanceFreeStorageSpaceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DmsReplicationInstanceFreeStorageSpaceAlarm(scope: IConstruct, id: string, props: DmsReplicationInstanceFreeStorageSpaceAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps">DmsReplicationInstanceFreeStorageSpaceAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps">DmsReplicationInstanceFreeStorageSpaceAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.isConstruct"></a>

```typescript
import { DmsReplicationInstanceFreeStorageSpaceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceFreeStorageSpaceAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.isOwnedResource"></a>

```typescript
import { DmsReplicationInstanceFreeStorageSpaceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceFreeStorageSpaceAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.isResource"></a>

```typescript
import { DmsReplicationInstanceFreeStorageSpaceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceFreeStorageSpaceAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.fromAlarmArn"></a>

```typescript
import { DmsReplicationInstanceFreeStorageSpaceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceFreeStorageSpaceAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.fromAlarmName"></a>

```typescript
import { DmsReplicationInstanceFreeStorageSpaceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceFreeStorageSpaceAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### DmsReplicationInstanceRecommendedAlarms <a name="DmsReplicationInstanceRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms"></a>

A construct that creates the recommended alarms for a DMS Replication Instance.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.Initializer"></a>

```typescript
import { DmsReplicationInstanceRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DmsReplicationInstanceRecommendedAlarms(scope: Construct, id: string, props: DmsReplicationInstanceRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps">DmsReplicationInstanceRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps">DmsReplicationInstanceRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.isConstruct"></a>

```typescript
import { DmsReplicationInstanceRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.property.alarmCpuUtilization">alarmCpuUtilization</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm">DmsReplicationInstanceCpuUtilizationAlarm</a></code> | The CpuUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.property.alarmFreeableMemory">alarmFreeableMemory</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm">DmsReplicationInstanceFreeableMemoryAlarm</a></code> | The FreeableMemory alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.property.alarmFreeStorageSpace">alarmFreeStorageSpace</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm">DmsReplicationInstanceFreeStorageSpaceAlarm</a></code> | The FreeStorageSpace alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.property.alarmSwapUsage">alarmSwapUsage</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm">DmsReplicationInstanceSwapUsageAlarm</a></code> | The SwapUsage alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.property.alarmWriteIops">alarmWriteIops</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm">DmsReplicationInstanceWriteIopsAlarm</a></code> | The WriteIops alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmCpuUtilization`<sup>Optional</sup> <a name="alarmCpuUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.property.alarmCpuUtilization"></a>

```typescript
public readonly alarmCpuUtilization: DmsReplicationInstanceCpuUtilizationAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarm">DmsReplicationInstanceCpuUtilizationAlarm</a>

The CpuUtilization alarm.

---

##### `alarmFreeableMemory`<sup>Optional</sup> <a name="alarmFreeableMemory" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.property.alarmFreeableMemory"></a>

```typescript
public readonly alarmFreeableMemory: DmsReplicationInstanceFreeableMemoryAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarm">DmsReplicationInstanceFreeableMemoryAlarm</a>

The FreeableMemory alarm.

---

##### `alarmFreeStorageSpace`<sup>Optional</sup> <a name="alarmFreeStorageSpace" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.property.alarmFreeStorageSpace"></a>

```typescript
public readonly alarmFreeStorageSpace: DmsReplicationInstanceFreeStorageSpaceAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarm">DmsReplicationInstanceFreeStorageSpaceAlarm</a>

The FreeStorageSpace alarm.

---

##### `alarmSwapUsage`<sup>Optional</sup> <a name="alarmSwapUsage" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.property.alarmSwapUsage"></a>

```typescript
public readonly alarmSwapUsage: DmsReplicationInstanceSwapUsageAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm">DmsReplicationInstanceSwapUsageAlarm</a>

The SwapUsage alarm.

---

##### `alarmWriteIops`<sup>Optional</sup> <a name="alarmWriteIops" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarms.property.alarmWriteIops"></a>

```typescript
public readonly alarmWriteIops: DmsReplicationInstanceWriteIopsAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm">DmsReplicationInstanceWriteIopsAlarm</a>

The WriteIops alarm.

---


### DmsReplicationInstanceSwapUsageAlarm <a name="DmsReplicationInstanceSwapUsageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm"></a>

This anomaly detection alarm is used to detect high swap usage for the DMS Replication Instance.

High swap usage can indicate memory pressure, performance issues, or resource constraints.
This alarm uses anomaly detection to identify when swap usage exceeds normal patterns,
which can help identify performance degradation or insufficient memory allocation.

By default, the alarm is triggered when swap usage exceeds the upper threshold
of the anomaly detection band, detecting unusually high swap usage that may
indicate memory pressure or performance issues.

Note: Anomaly detection alarms use a fixed 5-minute period as required by AWS CloudWatch.
This period cannot be customized and is optimal for anomaly detection algorithms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.Initializer"></a>

```typescript
import { DmsReplicationInstanceSwapUsageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DmsReplicationInstanceSwapUsageAlarm(scope: IConstruct, id: string, props: DmsReplicationInstanceSwapUsageAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps">DmsReplicationInstanceSwapUsageAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps">DmsReplicationInstanceSwapUsageAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.isConstruct"></a>

```typescript
import { DmsReplicationInstanceSwapUsageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceSwapUsageAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.isOwnedResource"></a>

```typescript
import { DmsReplicationInstanceSwapUsageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceSwapUsageAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.isResource"></a>

```typescript
import { DmsReplicationInstanceSwapUsageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceSwapUsageAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.fromAlarmArn"></a>

```typescript
import { DmsReplicationInstanceSwapUsageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceSwapUsageAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.fromAlarmName"></a>

```typescript
import { DmsReplicationInstanceSwapUsageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceSwapUsageAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### DmsReplicationInstanceWriteIopsAlarm <a name="DmsReplicationInstanceWriteIopsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm"></a>

This alarm is used to detect high write IOPS for the DMS Replication Instance.

High write IOPS can indicate heavy write activity or potential I/O bottlenecks.
This can help identify performance issues or unexpected workload patterns.

The alarm is triggered when write IOPS exceeds the specified threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.Initializer"></a>

```typescript
import { DmsReplicationInstanceWriteIopsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DmsReplicationInstanceWriteIopsAlarm(scope: IConstruct, id: string, props: DmsReplicationInstanceWriteIopsAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps">DmsReplicationInstanceWriteIopsAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps">DmsReplicationInstanceWriteIopsAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.isConstruct"></a>

```typescript
import { DmsReplicationInstanceWriteIopsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceWriteIopsAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.isOwnedResource"></a>

```typescript
import { DmsReplicationInstanceWriteIopsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceWriteIopsAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.isResource"></a>

```typescript
import { DmsReplicationInstanceWriteIopsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceWriteIopsAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.fromAlarmArn"></a>

```typescript
import { DmsReplicationInstanceWriteIopsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceWriteIopsAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.fromAlarmName"></a>

```typescript
import { DmsReplicationInstanceWriteIopsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationInstanceWriteIopsAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### DmsReplicationTaskCdcLatencySourceAlarm <a name="DmsReplicationTaskCdcLatencySourceAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm"></a>

An alarm that monitors the CDC latency (in seconds) from the source database.

This alarm monitors the gap between the last event captured from the source endpoint
and current system time. It can help detect:
- Replication lag indicating source database performance issues
- Network connectivity problems affecting CDC capture
- Source database load affecting change capture performance
- Data freshness issues that could impact real-time applications

The alarm is typically configured to trigger on high latency values.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.Initializer"></a>

```typescript
import { DmsReplicationTaskCdcLatencySourceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DmsReplicationTaskCdcLatencySourceAlarm(scope: IConstruct, id: string, props: DmsReplicationTaskCdcLatencySourceAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps">DmsReplicationTaskCdcLatencySourceAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps">DmsReplicationTaskCdcLatencySourceAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.isConstruct"></a>

```typescript
import { DmsReplicationTaskCdcLatencySourceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationTaskCdcLatencySourceAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.isOwnedResource"></a>

```typescript
import { DmsReplicationTaskCdcLatencySourceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationTaskCdcLatencySourceAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.isResource"></a>

```typescript
import { DmsReplicationTaskCdcLatencySourceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationTaskCdcLatencySourceAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.fromAlarmArn"></a>

```typescript
import { DmsReplicationTaskCdcLatencySourceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationTaskCdcLatencySourceAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.fromAlarmName"></a>

```typescript
import { DmsReplicationTaskCdcLatencySourceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationTaskCdcLatencySourceAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### DmsReplicationTaskCdcLatencyTargetAlarm <a name="DmsReplicationTaskCdcLatencyTargetAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm"></a>

An alarm that monitors the CDC latency (in seconds) to the target database.

This alarm monitors the gap between a change that was committed to the source
and the same change committed to the target. It can help detect:
- End-to-end replication latency affecting data consistency
- Target database performance issues affecting write operations
- Network connectivity problems between replication instance and target
- Data consistency issues that could impact downstream applications

The alarm is typically configured to trigger on high latency values.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.Initializer"></a>

```typescript
import { DmsReplicationTaskCdcLatencyTargetAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DmsReplicationTaskCdcLatencyTargetAlarm(scope: IConstruct, id: string, props: DmsReplicationTaskCdcLatencyTargetAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps">DmsReplicationTaskCdcLatencyTargetAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps">DmsReplicationTaskCdcLatencyTargetAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.isConstruct"></a>

```typescript
import { DmsReplicationTaskCdcLatencyTargetAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationTaskCdcLatencyTargetAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.isOwnedResource"></a>

```typescript
import { DmsReplicationTaskCdcLatencyTargetAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationTaskCdcLatencyTargetAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.isResource"></a>

```typescript
import { DmsReplicationTaskCdcLatencyTargetAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationTaskCdcLatencyTargetAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.fromAlarmArn"></a>

```typescript
import { DmsReplicationTaskCdcLatencyTargetAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationTaskCdcLatencyTargetAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.fromAlarmName"></a>

```typescript
import { DmsReplicationTaskCdcLatencyTargetAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationTaskCdcLatencyTargetAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### DmsReplicationTaskRecommendedAlarms <a name="DmsReplicationTaskRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms"></a>

A construct that creates the recommended alarms for a DMS Replication Task.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.Initializer"></a>

```typescript
import { DmsReplicationTaskRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DmsReplicationTaskRecommendedAlarms(scope: Construct, id: string, props: DmsReplicationTaskRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps">DmsReplicationTaskRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps">DmsReplicationTaskRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.isConstruct"></a>

```typescript
import { DmsReplicationTaskRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DmsReplicationTaskRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.property.alarmCdcLatencySource">alarmCdcLatencySource</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm">DmsReplicationTaskCdcLatencySourceAlarm</a></code> | The CDCLatencySource alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.property.alarmCdcLatencyTarget">alarmCdcLatencyTarget</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm">DmsReplicationTaskCdcLatencyTargetAlarm</a></code> | The CDCLatencyTarget alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmCdcLatencySource`<sup>Optional</sup> <a name="alarmCdcLatencySource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.property.alarmCdcLatencySource"></a>

```typescript
public readonly alarmCdcLatencySource: DmsReplicationTaskCdcLatencySourceAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarm">DmsReplicationTaskCdcLatencySourceAlarm</a>

The CDCLatencySource alarm.

---

##### `alarmCdcLatencyTarget`<sup>Optional</sup> <a name="alarmCdcLatencyTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarms.property.alarmCdcLatencyTarget"></a>

```typescript
public readonly alarmCdcLatencyTarget: DmsReplicationTaskCdcLatencyTargetAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarm">DmsReplicationTaskCdcLatencyTargetAlarm</a>

The CDCLatencyTarget alarm.

---


### DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm <a name="DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm"></a>

This alarm detects the delay in replication to a Kinesis data stream.

Under normal operation, `AgeOfOldestUnreplicatedRecord` should be only milliseconds.
This number grows based on unsuccessful replication attempts caused by customer-controlled
configuration choices. Customer-controlled configuration examples that lead to unsuccessful
replication attempts are an under-provisioned Kinesis data stream capacity that leads to
excessive throttling. or a manual update to the Kinesis data stream's access policies that
prevents DynamoDB from adding data to the data stream. To keep this metric as low as possible,
you need to ensure the right provisioning of Kinesis data stream capacity and make sure that
DynamoDB's permissions are unchanged.

The alarm is triggered when the elapsed time since a record yet to be replicated exceeds the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.Initializer"></a>

```typescript
import { DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm(scope: IConstruct, id: string, props: DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps">DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps">DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.isConstruct"></a>

```typescript
import { DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.isOwnedResource"></a>

```typescript
import { DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.isResource"></a>

```typescript
import { DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.fromAlarmArn"></a>

```typescript
import { DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.fromAlarmName"></a>

```typescript
import { DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### DynamoDbTableFailedToReplicateRecordCountAlarm <a name="DynamoDbTableFailedToReplicateRecordCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm"></a>

This alarm detects the number of records that DynamoDB failed to replicate to your Kinesis data stream.

Certain items larger than 34 KB might expand in size to change data records that are larger than the 1 MB
item size limit of Kinesis Data Streams. This size expansion occurs when these larger than 34 KB items include
a large number of Boolean or empty attribute values. Boolean and empty attribute values are stored as 1 byte
in DynamoDB, but expand up to 5 bytes when they're serialized using standard JSON for Kinesis Data Streams
replication. DynamoDB can't replicate such change records to your Kinesis data stream. DynamoDB skips these
change data records, and automatically continues replicating subsequent records.

The alarm is triggered when the the number of records failed to be replicated exceeds the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.Initializer"></a>

```typescript
import { DynamoDbTableFailedToReplicateRecordCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DynamoDbTableFailedToReplicateRecordCountAlarm(scope: IConstruct, id: string, props: DynamoDbTableFailedToReplicateRecordCountAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps">DynamoDbTableFailedToReplicateRecordCountAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps">DynamoDbTableFailedToReplicateRecordCountAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.isConstruct"></a>

```typescript
import { DynamoDbTableFailedToReplicateRecordCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableFailedToReplicateRecordCountAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.isOwnedResource"></a>

```typescript
import { DynamoDbTableFailedToReplicateRecordCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableFailedToReplicateRecordCountAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.isResource"></a>

```typescript
import { DynamoDbTableFailedToReplicateRecordCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableFailedToReplicateRecordCountAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.fromAlarmArn"></a>

```typescript
import { DynamoDbTableFailedToReplicateRecordCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableFailedToReplicateRecordCountAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.fromAlarmName"></a>

```typescript
import { DynamoDbTableFailedToReplicateRecordCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableFailedToReplicateRecordCountAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### DynamoDbTableReadThrottleEventsAlarm <a name="DynamoDbTableReadThrottleEventsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm"></a>

This alarm detects if there are high number of read requests getting throttled for the DynamoDB table.

To troubleshoot the issue, see {@link https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TroubleshootingThrottling.html Troubleshooting throttling issues in Amazon DynamoDB}.

The alarm is triggered when the number of read requests exceeds the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.Initializer"></a>

```typescript
import { DynamoDbTableReadThrottleEventsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DynamoDbTableReadThrottleEventsAlarm(scope: IConstruct, id: string, props: DynamoDbTableReadThrottleEventsAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps">DynamoDbTableReadThrottleEventsAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps">DynamoDbTableReadThrottleEventsAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.isConstruct"></a>

```typescript
import { DynamoDbTableReadThrottleEventsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableReadThrottleEventsAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.isOwnedResource"></a>

```typescript
import { DynamoDbTableReadThrottleEventsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableReadThrottleEventsAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.isResource"></a>

```typescript
import { DynamoDbTableReadThrottleEventsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableReadThrottleEventsAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.fromAlarmArn"></a>

```typescript
import { DynamoDbTableReadThrottleEventsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableReadThrottleEventsAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.fromAlarmName"></a>

```typescript
import { DynamoDbTableReadThrottleEventsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableReadThrottleEventsAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### DynamoDbTableRecommendedAlarms <a name="DynamoDbTableRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms"></a>

A construct that creates the recommended alarms for an DynamoDb Table.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#DynamoDB](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#DynamoDB)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.Initializer"></a>

```typescript
import { DynamoDbTableRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DynamoDbTableRecommendedAlarms(scope: Construct, id: string, props: DynamoDbTableRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps">DynamoDbTableRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps">DynamoDbTableRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.isConstruct"></a>

```typescript
import { DynamoDbTableRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.property.alarmAgeOfOldestUnreplicatedRecord">alarmAgeOfOldestUnreplicatedRecord</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm">DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm</a></code> | The AgeOfOldestUnreplicatedRecord alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.property.alarmFailedToReplicateRecordCount">alarmFailedToReplicateRecordCount</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm">DynamoDbTableFailedToReplicateRecordCountAlarm</a></code> | The FailedToReplicateRecordCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.property.alarmReadThrottleEvents">alarmReadThrottleEvents</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm">DynamoDbTableReadThrottleEventsAlarm</a></code> | The ReadThrottleEvents alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.property.alarmSystemErrors">alarmSystemErrors</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm">DynamoDbTableSystemErrorsAlarm</a></code> | The SystemErrors alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.property.alarmThrottledPutRecordCount">alarmThrottledPutRecordCount</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm">DynamoDbTableThrottledPutRecordCountAlarm</a></code> | The ThrottledPutRecordCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.property.alarmWriteThrottleEvents">alarmWriteThrottleEvents</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm">DynamoDbTableWriteThrottleEventsAlarm</a></code> | The WriteThrottleEvents alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmAgeOfOldestUnreplicatedRecord`<sup>Optional</sup> <a name="alarmAgeOfOldestUnreplicatedRecord" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.property.alarmAgeOfOldestUnreplicatedRecord"></a>

```typescript
public readonly alarmAgeOfOldestUnreplicatedRecord: DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm">DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm</a>

The AgeOfOldestUnreplicatedRecord alarm.

---

##### `alarmFailedToReplicateRecordCount`<sup>Optional</sup> <a name="alarmFailedToReplicateRecordCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.property.alarmFailedToReplicateRecordCount"></a>

```typescript
public readonly alarmFailedToReplicateRecordCount: DynamoDbTableFailedToReplicateRecordCountAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarm">DynamoDbTableFailedToReplicateRecordCountAlarm</a>

The FailedToReplicateRecordCount alarm.

---

##### `alarmReadThrottleEvents`<sup>Optional</sup> <a name="alarmReadThrottleEvents" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.property.alarmReadThrottleEvents"></a>

```typescript
public readonly alarmReadThrottleEvents: DynamoDbTableReadThrottleEventsAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarm">DynamoDbTableReadThrottleEventsAlarm</a>

The ReadThrottleEvents alarm.

---

##### `alarmSystemErrors`<sup>Optional</sup> <a name="alarmSystemErrors" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.property.alarmSystemErrors"></a>

```typescript
public readonly alarmSystemErrors: DynamoDbTableSystemErrorsAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm">DynamoDbTableSystemErrorsAlarm</a>

The SystemErrors alarm.

---

##### `alarmThrottledPutRecordCount`<sup>Optional</sup> <a name="alarmThrottledPutRecordCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.property.alarmThrottledPutRecordCount"></a>

```typescript
public readonly alarmThrottledPutRecordCount: DynamoDbTableThrottledPutRecordCountAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm">DynamoDbTableThrottledPutRecordCountAlarm</a>

The ThrottledPutRecordCount alarm.

---

##### `alarmWriteThrottleEvents`<sup>Optional</sup> <a name="alarmWriteThrottleEvents" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarms.property.alarmWriteThrottleEvents"></a>

```typescript
public readonly alarmWriteThrottleEvents: DynamoDbTableWriteThrottleEventsAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm">DynamoDbTableWriteThrottleEventsAlarm</a>

The WriteThrottleEvents alarm.

---


### DynamoDbTableSystemErrorsAlarm <a name="DynamoDbTableSystemErrorsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm"></a>

This alarm detects a sustained high number of system errors for the DynamoDB table requests.

If you continue to get 5xx errors, open the {@link https://status.aws.amazon.com/ AWS Service Health Dashboard}
to check for operational issues with the service. You can use this alarm to get notified in case there is a prolonged
internal service issue from DynamoDB and it helps you correlate with the issue your client application is facing.
Refer {@link https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.MessagesAndCodes.http5xx Error handling for DynamoDB} for more information.

The alarm is triggered when the number of system errors exceeds threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.Initializer"></a>

```typescript
import { DynamoDbTableSystemErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DynamoDbTableSystemErrorsAlarm(scope: IConstruct, id: string, props: DynamoDbTableSystemErrorsAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps">DynamoDbTableSystemErrorsAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps">DynamoDbTableSystemErrorsAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.isConstruct"></a>

```typescript
import { DynamoDbTableSystemErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableSystemErrorsAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.isOwnedResource"></a>

```typescript
import { DynamoDbTableSystemErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableSystemErrorsAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.isResource"></a>

```typescript
import { DynamoDbTableSystemErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableSystemErrorsAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.fromAlarmArn"></a>

```typescript
import { DynamoDbTableSystemErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableSystemErrorsAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.fromAlarmName"></a>

```typescript
import { DynamoDbTableSystemErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableSystemErrorsAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### DynamoDbTableThrottledPutRecordCountAlarm <a name="DynamoDbTableThrottledPutRecordCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm"></a>

This alarm detects the records getting throttled by your Kinesis data stream during the replication of change data capture to Kinesis.

This throttling happens because of insufficient Kinesis data stream capacity. If you experience excessive
and regular throttling, you might need to increase the number of Kinesis stream shards proportionally to
the observed write throughput of your table. To learn more about determining the size of a Kinesis data stream,
see {@link https://docs.aws.amazon.com/streams/latest/dev/amazon-kinesis-streams.html#how-do-i-size-a-stream Determining the Initial Size of a Kinesis Data Stream}.

The alarm is triggered when the number or records that were throttled exceeds the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.Initializer"></a>

```typescript
import { DynamoDbTableThrottledPutRecordCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DynamoDbTableThrottledPutRecordCountAlarm(scope: IConstruct, id: string, props: DynamoDbTableThrottledPutRecordCountAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps">DynamoDbTableThrottledPutRecordCountAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps">DynamoDbTableThrottledPutRecordCountAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.isConstruct"></a>

```typescript
import { DynamoDbTableThrottledPutRecordCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableThrottledPutRecordCountAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.isOwnedResource"></a>

```typescript
import { DynamoDbTableThrottledPutRecordCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableThrottledPutRecordCountAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.isResource"></a>

```typescript
import { DynamoDbTableThrottledPutRecordCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableThrottledPutRecordCountAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.fromAlarmArn"></a>

```typescript
import { DynamoDbTableThrottledPutRecordCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableThrottledPutRecordCountAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.fromAlarmName"></a>

```typescript
import { DynamoDbTableThrottledPutRecordCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableThrottledPutRecordCountAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### DynamoDbTableWriteThrottleEventsAlarm <a name="DynamoDbTableWriteThrottleEventsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm"></a>

This alarm detects if there are high number of read requests getting throttled for the DynamoDB table.

To troubleshoot the issue, see {@link https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TroubleshootingThrottling.html Troubleshooting throttling issues in Amazon DynamoDB}.

The alarm is triggered when the number of read requests exceeds the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.Initializer"></a>

```typescript
import { DynamoDbTableWriteThrottleEventsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DynamoDbTableWriteThrottleEventsAlarm(scope: IConstruct, id: string, props: DynamoDbTableWriteThrottleEventsAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps">DynamoDbTableWriteThrottleEventsAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps">DynamoDbTableWriteThrottleEventsAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.isConstruct"></a>

```typescript
import { DynamoDbTableWriteThrottleEventsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableWriteThrottleEventsAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.isOwnedResource"></a>

```typescript
import { DynamoDbTableWriteThrottleEventsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableWriteThrottleEventsAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.isResource"></a>

```typescript
import { DynamoDbTableWriteThrottleEventsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableWriteThrottleEventsAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.fromAlarmArn"></a>

```typescript
import { DynamoDbTableWriteThrottleEventsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableWriteThrottleEventsAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.fromAlarmName"></a>

```typescript
import { DynamoDbTableWriteThrottleEventsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

DynamoDbTableWriteThrottleEventsAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### Ec2InstanceCpuUtilizationAlarm <a name="Ec2InstanceCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm"></a>

This alarm helps to monitor the CPU utilization of an EC2 instance.

Depending on the application, consistently high utilization levels might be normal. But if performance is degraded,
and the application is not constrained by disk I/O, memory, or network resources, then a maxed-out CPU might indicate
a resource bottleneck or application performance problems. High CPU utilization might indicate that an upgrade to a
more CPU intensive instance is required. If detailed monitoring is enabled, you can change the period to 60 seconds
instead of 300 seconds. For more information, see Enable or turn off detailed monitoring for your instances.

The alarm is triggered when the percentage exceeds % threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.Initializer"></a>

```typescript
import { Ec2InstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new Ec2InstanceCpuUtilizationAlarm(scope: IConstruct, id: string, props: Ec2InstanceCpuUtilizationAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps">Ec2InstanceCpuUtilizationAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps">Ec2InstanceCpuUtilizationAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.isConstruct"></a>

```typescript
import { Ec2InstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Ec2InstanceCpuUtilizationAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.isOwnedResource"></a>

```typescript
import { Ec2InstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Ec2InstanceCpuUtilizationAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.isResource"></a>

```typescript
import { Ec2InstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Ec2InstanceCpuUtilizationAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.fromAlarmArn"></a>

```typescript
import { Ec2InstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Ec2InstanceCpuUtilizationAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.fromAlarmName"></a>

```typescript
import { Ec2InstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Ec2InstanceCpuUtilizationAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### Ec2InstanceRecommendedAlarms <a name="Ec2InstanceRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms"></a>

A construct that creates the recommended alarms for an EC2 Instance.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EC2](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EC2)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.Initializer"></a>

```typescript
import { Ec2InstanceRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new Ec2InstanceRecommendedAlarms(scope: Construct, id: string, props: Ec2InstanceRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps">Ec2InstanceRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps">Ec2InstanceRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.isConstruct"></a>

```typescript
import { Ec2InstanceRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Ec2InstanceRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.property.alarmCpuUtilization">alarmCpuUtilization</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm">Ec2InstanceCpuUtilizationAlarm</a></code> | The CPUUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.property.alarmStatusCheckFailed">alarmStatusCheckFailed</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm">Ec2InstanceStatusCheckFailedAlarm</a></code> | The StatusCheckFailed alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmCpuUtilization`<sup>Optional</sup> <a name="alarmCpuUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.property.alarmCpuUtilization"></a>

```typescript
public readonly alarmCpuUtilization: Ec2InstanceCpuUtilizationAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarm">Ec2InstanceCpuUtilizationAlarm</a>

The CPUUtilization alarm.

---

##### `alarmStatusCheckFailed`<sup>Optional</sup> <a name="alarmStatusCheckFailed" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarms.property.alarmStatusCheckFailed"></a>

```typescript
public readonly alarmStatusCheckFailed: Ec2InstanceStatusCheckFailedAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm">Ec2InstanceStatusCheckFailedAlarm</a>

The StatusCheckFailed alarm.

---


### Ec2InstanceStatusCheckFailedAlarm <a name="Ec2InstanceStatusCheckFailedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm"></a>

This alarm helps to monitor both system status checks and instance status checks.

If either type of status check fails, then this alarm should be in ALARM state.

The alarm is triggered when the status reported is greater or equal to threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.Initializer"></a>

```typescript
import { Ec2InstanceStatusCheckFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new Ec2InstanceStatusCheckFailedAlarm(scope: IConstruct, id: string, props: Ec2InstanceStatusCheckFailedAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps">Ec2InstanceStatusCheckFailedAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps">Ec2InstanceStatusCheckFailedAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.isConstruct"></a>

```typescript
import { Ec2InstanceStatusCheckFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Ec2InstanceStatusCheckFailedAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.isOwnedResource"></a>

```typescript
import { Ec2InstanceStatusCheckFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Ec2InstanceStatusCheckFailedAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.isResource"></a>

```typescript
import { Ec2InstanceStatusCheckFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Ec2InstanceStatusCheckFailedAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.fromAlarmArn"></a>

```typescript
import { Ec2InstanceStatusCheckFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Ec2InstanceStatusCheckFailedAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.fromAlarmName"></a>

```typescript
import { Ec2InstanceStatusCheckFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Ec2InstanceStatusCheckFailedAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### EcsServiceCpuUtilizationAlarm <a name="EcsServiceCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm"></a>

This alarm is used to detect high CPU utilization for the ECS service.

Consistent high CPU utilization can indicate a resource bottleneck or
application performance problems.

The alarm is triggered when CPU utilization exceeds % threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.Initializer"></a>

```typescript
import { EcsServiceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new EcsServiceCpuUtilizationAlarm(scope: IConstruct, id: string, props: EcsServiceCpuUtilizationAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps">EcsServiceCpuUtilizationAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps">EcsServiceCpuUtilizationAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.isConstruct"></a>

```typescript
import { EcsServiceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceCpuUtilizationAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.isOwnedResource"></a>

```typescript
import { EcsServiceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceCpuUtilizationAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.isResource"></a>

```typescript
import { EcsServiceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceCpuUtilizationAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.fromAlarmArn"></a>

```typescript
import { EcsServiceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceCpuUtilizationAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.fromAlarmName"></a>

```typescript
import { EcsServiceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceCpuUtilizationAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### EcsServiceEphemeralStorageUtilizedAlarm <a name="EcsServiceEphemeralStorageUtilizedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm"></a>

This alarm is used to detect high ephemeral storage usage for the Fargate cluster.

Consistent high ephemeral storage utilized can indicate that the disk is full and it
might lead to failure of the container.

The alarm is triggered when the storage utilized (GB) exceeds the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.Initializer"></a>

```typescript
import { EcsServiceEphemeralStorageUtilizedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new EcsServiceEphemeralStorageUtilizedAlarm(scope: IConstruct, id: string, props: EcsServiceEphemeralStorageUtilizedAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps">EcsServiceEphemeralStorageUtilizedAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps">EcsServiceEphemeralStorageUtilizedAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.isConstruct"></a>

```typescript
import { EcsServiceEphemeralStorageUtilizedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceEphemeralStorageUtilizedAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.isOwnedResource"></a>

```typescript
import { EcsServiceEphemeralStorageUtilizedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceEphemeralStorageUtilizedAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.isResource"></a>

```typescript
import { EcsServiceEphemeralStorageUtilizedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceEphemeralStorageUtilizedAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.fromAlarmArn"></a>

```typescript
import { EcsServiceEphemeralStorageUtilizedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceEphemeralStorageUtilizedAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.fromAlarmName"></a>

```typescript
import { EcsServiceEphemeralStorageUtilizedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceEphemeralStorageUtilizedAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### EcsServiceMemoryUtilizationAlarm <a name="EcsServiceMemoryUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm"></a>

This alarm is used to detect high memory utilization for the ECS service.

Consistent high memory utilization can indicate a resource bottleneck or
application performance problems.

The alarm is triggered when memory utilization exceeds % threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.Initializer"></a>

```typescript
import { EcsServiceMemoryUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new EcsServiceMemoryUtilizationAlarm(scope: IConstruct, id: string, props: EcsServiceMemoryUtilizationAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps">EcsServiceMemoryUtilizationAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps">EcsServiceMemoryUtilizationAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.isConstruct"></a>

```typescript
import { EcsServiceMemoryUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceMemoryUtilizationAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.isOwnedResource"></a>

```typescript
import { EcsServiceMemoryUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceMemoryUtilizationAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.isResource"></a>

```typescript
import { EcsServiceMemoryUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceMemoryUtilizationAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.fromAlarmArn"></a>

```typescript
import { EcsServiceMemoryUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceMemoryUtilizationAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.fromAlarmName"></a>

```typescript
import { EcsServiceMemoryUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceMemoryUtilizationAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### EcsServiceRecommendedAlarms <a name="EcsServiceRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms"></a>

A construct that creates the recommended alarms for an ECS service.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ECS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ECS)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.Initializer"></a>

```typescript
import { EcsServiceRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new EcsServiceRecommendedAlarms(scope: Construct, id: string, props: EcsServiceRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps">EcsServiceRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps">EcsServiceRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.isConstruct"></a>

```typescript
import { EcsServiceRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.property.alarmCpuUtilization">alarmCpuUtilization</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm">EcsServiceCpuUtilizationAlarm</a></code> | The CpuUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.property.alarmEphemeralStorageUtilized">alarmEphemeralStorageUtilized</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm">EcsServiceEphemeralStorageUtilizedAlarm</a></code> | The EphemeralStorageUtilized alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.property.alarmMemoryUtilization">alarmMemoryUtilization</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm">EcsServiceMemoryUtilizationAlarm</a></code> | The MemoryUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.property.alarmRunningTaskCount">alarmRunningTaskCount</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm">EcsServiceRunningTaskCountAlarm</a></code> | The RunningTaskCount alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmCpuUtilization`<sup>Optional</sup> <a name="alarmCpuUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.property.alarmCpuUtilization"></a>

```typescript
public readonly alarmCpuUtilization: EcsServiceCpuUtilizationAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarm">EcsServiceCpuUtilizationAlarm</a>

The CpuUtilization alarm.

---

##### `alarmEphemeralStorageUtilized`<sup>Optional</sup> <a name="alarmEphemeralStorageUtilized" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.property.alarmEphemeralStorageUtilized"></a>

```typescript
public readonly alarmEphemeralStorageUtilized: EcsServiceEphemeralStorageUtilizedAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarm">EcsServiceEphemeralStorageUtilizedAlarm</a>

The EphemeralStorageUtilized alarm.

---

##### `alarmMemoryUtilization`<sup>Optional</sup> <a name="alarmMemoryUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.property.alarmMemoryUtilization"></a>

```typescript
public readonly alarmMemoryUtilization: EcsServiceMemoryUtilizationAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarm">EcsServiceMemoryUtilizationAlarm</a>

The MemoryUtilization alarm.

---

##### `alarmRunningTaskCount`<sup>Optional</sup> <a name="alarmRunningTaskCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarms.property.alarmRunningTaskCount"></a>

```typescript
public readonly alarmRunningTaskCount: EcsServiceRunningTaskCountAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm">EcsServiceRunningTaskCountAlarm</a>

The RunningTaskCount alarm.

---


### EcsServiceRunningTaskCountAlarm <a name="EcsServiceRunningTaskCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm"></a>

This alarm helps you detect a low running task count of the ECS service.

If the running task count is too low, it can can indicate that the application
can’t handle the service load and it might lead to performance issues. If there
is no running task, the Amazon ECS service might be unavailable or there might
be deployment issues.

The alarm is triggered when the number of running tasks is less than or equal to
threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.Initializer"></a>

```typescript
import { EcsServiceRunningTaskCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new EcsServiceRunningTaskCountAlarm(scope: IConstruct, id: string, props: EcsServiceRunningTaskCountAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps">EcsServiceRunningTaskCountAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps">EcsServiceRunningTaskCountAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.isConstruct"></a>

```typescript
import { EcsServiceRunningTaskCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceRunningTaskCountAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.isOwnedResource"></a>

```typescript
import { EcsServiceRunningTaskCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceRunningTaskCountAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.isResource"></a>

```typescript
import { EcsServiceRunningTaskCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceRunningTaskCountAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.fromAlarmArn"></a>

```typescript
import { EcsServiceRunningTaskCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceRunningTaskCountAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.fromAlarmName"></a>

```typescript
import { EcsServiceRunningTaskCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EcsServiceRunningTaskCountAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### EfsFileSystemBurstCreditBalanceAlarm <a name="EfsFileSystemBurstCreditBalanceAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm"></a>

This alarm helps in ensuring that there is available burst credit balance for the file system usage.

When there is no available burst credit, applications access to the the file system will be limited due to low throughput.
If the metric drops to 0 consistently, consider changing the throughput mode to Elastic or Provisioned throughput mode.

The alarm is triggered when the percentage is lower or equals the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.Initializer"></a>

```typescript
import { EfsFileSystemBurstCreditBalanceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new EfsFileSystemBurstCreditBalanceAlarm(scope: IConstruct, id: string, props: EfsFileSystemBurstCreditBalanceAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps">EfsFileSystemBurstCreditBalanceAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps">EfsFileSystemBurstCreditBalanceAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.isConstruct"></a>

```typescript
import { EfsFileSystemBurstCreditBalanceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EfsFileSystemBurstCreditBalanceAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.isOwnedResource"></a>

```typescript
import { EfsFileSystemBurstCreditBalanceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EfsFileSystemBurstCreditBalanceAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.isResource"></a>

```typescript
import { EfsFileSystemBurstCreditBalanceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EfsFileSystemBurstCreditBalanceAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.fromAlarmArn"></a>

```typescript
import { EfsFileSystemBurstCreditBalanceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EfsFileSystemBurstCreditBalanceAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.fromAlarmName"></a>

```typescript
import { EfsFileSystemBurstCreditBalanceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EfsFileSystemBurstCreditBalanceAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### EfsFileSystemPercentIOLimitAlarm <a name="EfsFileSystemPercentIOLimitAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm"></a>

This alarm helps in ensuring that the workload stays within the I/O limit available to the file system.

If the metric reaches its I/O limit consistently, consider moving the application to a file system that
uses Max I/O performance as mode. For troubleshooting, check clients that are connected to the file system
and applications of the clients that throttles the file system.

The alarm is triggered when the percentage exceed or equals % threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.Initializer"></a>

```typescript
import { EfsFileSystemPercentIOLimitAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new EfsFileSystemPercentIOLimitAlarm(scope: IConstruct, id: string, props: EfsFileSystemPercentIOLimitAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps">EfsFileSystemPercentIOLimitAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps">EfsFileSystemPercentIOLimitAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.isConstruct"></a>

```typescript
import { EfsFileSystemPercentIOLimitAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EfsFileSystemPercentIOLimitAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.isOwnedResource"></a>

```typescript
import { EfsFileSystemPercentIOLimitAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EfsFileSystemPercentIOLimitAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.isResource"></a>

```typescript
import { EfsFileSystemPercentIOLimitAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EfsFileSystemPercentIOLimitAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.fromAlarmArn"></a>

```typescript
import { EfsFileSystemPercentIOLimitAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EfsFileSystemPercentIOLimitAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.fromAlarmName"></a>

```typescript
import { EfsFileSystemPercentIOLimitAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EfsFileSystemPercentIOLimitAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### EfsFileSystemRecommendedAlarms <a name="EfsFileSystemRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms"></a>

A construct that creates the recommended alarms for an EFS FileSystem.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EFS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EFS)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.Initializer"></a>

```typescript
import { EfsFileSystemRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new EfsFileSystemRecommendedAlarms(scope: Construct, id: string, props: EfsFileSystemRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps">EfsFileSystemRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps">EfsFileSystemRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.isConstruct"></a>

```typescript
import { EfsFileSystemRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

EfsFileSystemRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.property.alarmBurstCreditBalance">alarmBurstCreditBalance</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm">EfsFileSystemBurstCreditBalanceAlarm</a></code> | The BurstCreditBalance alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.property.alarmPercentIOLimit">alarmPercentIOLimit</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm">EfsFileSystemPercentIOLimitAlarm</a></code> | The PercentIOLimit alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmBurstCreditBalance`<sup>Optional</sup> <a name="alarmBurstCreditBalance" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.property.alarmBurstCreditBalance"></a>

```typescript
public readonly alarmBurstCreditBalance: EfsFileSystemBurstCreditBalanceAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarm">EfsFileSystemBurstCreditBalanceAlarm</a>

The BurstCreditBalance alarm.

---

##### `alarmPercentIOLimit`<sup>Optional</sup> <a name="alarmPercentIOLimit" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarms.property.alarmPercentIOLimit"></a>

```typescript
public readonly alarmPercentIOLimit: EfsFileSystemPercentIOLimitAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarm">EfsFileSystemPercentIOLimitAlarm</a>

The PercentIOLimit alarm.

---


### ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm <a name="ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm"></a>

This alarm helps you monitor the memory utilization of your cluster.

When your DatabaseMemoryUsagePercentage reaches 100%, the Redis OSS maxmemory policy is triggered and evictions might occur
based on the policy selected. If no object in the cache matches the eviction policy, write operations fail. Some workloads
expect or rely on evictions, but if not, you will need to increase the memory capacity of your cluster. You can scale your
cluster out by adding more primary nodes, or scale it up by using a larger node type.
Refer to {@link https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Scaling.html Scaling ElastiCache for Redis OSS clusters} for details.

The alarm is triggered when the percentage exceeds % threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.Initializer"></a>

```typescript
import { ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm(scope: IConstruct, id: string, props: ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps">ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps">ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.isConstruct"></a>

```typescript
import { ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.isOwnedResource"></a>

```typescript
import { ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.isResource"></a>

```typescript
import { ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.fromAlarmArn"></a>

```typescript
import { ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.fromAlarmName"></a>

```typescript
import { ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ElastiCacheClusterEngineCpuUtilizationAlarm <a name="ElastiCacheClusterEngineCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm"></a>

This alarm helps to monitor the CPU utilization of a Redis OSS engine thread within the ElastiCache instance.

Common reasons for high engine CPU are long-running commands that consume high CPU, a high number of requests, an increase of new
client connection requests in a short time period, and high evictions when the cache doesn't have enough memory to hold new data.
You should consider {@link https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Scaling.html Scaling ElastiCache for Redis OSS clusters}
by adding more nodes or scaling up your instance type.

The alarm is triggered when the percentage exceeds the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.Initializer"></a>

```typescript
import { ElastiCacheClusterEngineCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ElastiCacheClusterEngineCpuUtilizationAlarm(scope: IConstruct, id: string, props: ElastiCacheClusterEngineCpuUtilizationAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps">ElastiCacheClusterEngineCpuUtilizationAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps">ElastiCacheClusterEngineCpuUtilizationAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.isConstruct"></a>

```typescript
import { ElastiCacheClusterEngineCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterEngineCpuUtilizationAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.isOwnedResource"></a>

```typescript
import { ElastiCacheClusterEngineCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterEngineCpuUtilizationAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.isResource"></a>

```typescript
import { ElastiCacheClusterEngineCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterEngineCpuUtilizationAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.fromAlarmArn"></a>

```typescript
import { ElastiCacheClusterEngineCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterEngineCpuUtilizationAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.fromAlarmName"></a>

```typescript
import { ElastiCacheClusterEngineCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterEngineCpuUtilizationAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ElastiCacheClusterRecommendedAlarms <a name="ElastiCacheClusterRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms"></a>

A construct that creates the recommended alarms for an ElastiCache CfnCacheCluster.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ElastiCache](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ElastiCache)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.Initializer"></a>

```typescript
import { ElastiCacheClusterRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ElastiCacheClusterRecommendedAlarms(scope: Construct, id: string, props: ElastiCacheClusterRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps">ElastiCacheClusterRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps">ElastiCacheClusterRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.isConstruct"></a>

```typescript
import { ElastiCacheClusterRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.property.alarmDatabaseMemoryUsagePercentage">alarmDatabaseMemoryUsagePercentage</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm">ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm</a></code> | The DatabaseMemoryUsagePercentage alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.property.alarmEngineCpuUtilization">alarmEngineCpuUtilization</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm">ElastiCacheClusterEngineCpuUtilizationAlarm</a></code> | The EngineCpuUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.property.alarmReplicationLag">alarmReplicationLag</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm">ElastiCacheClusterReplicationLagAlarm</a></code> | The ReplicationLag alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmDatabaseMemoryUsagePercentage`<sup>Optional</sup> <a name="alarmDatabaseMemoryUsagePercentage" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.property.alarmDatabaseMemoryUsagePercentage"></a>

```typescript
public readonly alarmDatabaseMemoryUsagePercentage: ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm">ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm</a>

The DatabaseMemoryUsagePercentage alarm.

---

##### `alarmEngineCpuUtilization`<sup>Optional</sup> <a name="alarmEngineCpuUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.property.alarmEngineCpuUtilization"></a>

```typescript
public readonly alarmEngineCpuUtilization: ElastiCacheClusterEngineCpuUtilizationAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarm">ElastiCacheClusterEngineCpuUtilizationAlarm</a>

The EngineCpuUtilization alarm.

---

##### `alarmReplicationLag`<sup>Optional</sup> <a name="alarmReplicationLag" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarms.property.alarmReplicationLag"></a>

```typescript
public readonly alarmReplicationLag: ElastiCacheClusterReplicationLagAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm">ElastiCacheClusterReplicationLagAlarm</a>

The ReplicationLag alarm.

---


### ElastiCacheClusterReplicationLagAlarm <a name="ElastiCacheClusterReplicationLagAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm"></a>

This alarm helps to monitor the replication health of your ElastiCache cluster.

A high replication lag means that the primary node or the replica can't keep up the pace of the replication. If your write
activity is too high, consider scaling your cluster out by adding more primary nodes, or scaling it up by using a larger node type.
Refer to {@link https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Scaling.html Scaling ElastiCache for Redis OSS clusters} for
details. If your read replicas are overloaded by the amount of read requests,
consider adding more read replicas.

The alarm is triggered when the number of milliseconds exceeds the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.Initializer"></a>

```typescript
import { ElastiCacheClusterReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ElastiCacheClusterReplicationLagAlarm(scope: IConstruct, id: string, props: ElastiCacheClusterReplicationLagAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps">ElastiCacheClusterReplicationLagAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps">ElastiCacheClusterReplicationLagAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.isConstruct"></a>

```typescript
import { ElastiCacheClusterReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterReplicationLagAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.isOwnedResource"></a>

```typescript
import { ElastiCacheClusterReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterReplicationLagAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.isResource"></a>

```typescript
import { ElastiCacheClusterReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterReplicationLagAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.fromAlarmArn"></a>

```typescript
import { ElastiCacheClusterReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterReplicationLagAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.fromAlarmName"></a>

```typescript
import { ElastiCacheClusterReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheClusterReplicationLagAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm <a name="ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm"></a>

This alarm helps you monitor the memory utilization of your cluster.

When your DatabaseMemoryUsagePercentage reaches 100%, the Redis OSS maxmemory policy is triggered and evictions might occur
based on the policy selected. If no object in the cache matches the eviction policy, write operations fail. Some workloads
expect or rely on evictions, but if not, you will need to increase the memory capacity of your cluster. You can scale your
cluster out by adding more primary nodes, or scale it up by using a larger node type.
Refer to {@link https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Scaling.html Scaling ElastiCache for Redis OSS clusters} for details.

The alarm is triggered when the percentage exceeds % threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.Initializer"></a>

```typescript
import { ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm(scope: IConstruct, id: string, props: ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps">ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps">ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.isConstruct"></a>

```typescript
import { ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.isOwnedResource"></a>

```typescript
import { ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.isResource"></a>

```typescript
import { ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.fromAlarmArn"></a>

```typescript
import { ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.fromAlarmName"></a>

```typescript
import { ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ElastiCacheReplicationGroupEngineCpuUtilizationAlarm <a name="ElastiCacheReplicationGroupEngineCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm"></a>

This alarm helps to monitor the CPU utilization of a Redis OSS engine thread within the ElastiCache instance.

Common reasons for high engine CPU are long-running commands that consume high CPU, a high number of requests, an increase of new
client connection requests in a short time period, and high evictions when the cache doesn't have enough memory to hold new data.
You should consider {@link https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Scaling.html Scaling ElastiCache for Redis OSS clusters}
by adding more nodes or scaling up your instance type.

The alarm is triggered when the percentage exceeds the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.Initializer"></a>

```typescript
import { ElastiCacheReplicationGroupEngineCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ElastiCacheReplicationGroupEngineCpuUtilizationAlarm(scope: IConstruct, id: string, props: ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps">ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps">ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.isConstruct"></a>

```typescript
import { ElastiCacheReplicationGroupEngineCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.isOwnedResource"></a>

```typescript
import { ElastiCacheReplicationGroupEngineCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.isResource"></a>

```typescript
import { ElastiCacheReplicationGroupEngineCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.fromAlarmArn"></a>

```typescript
import { ElastiCacheReplicationGroupEngineCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.fromAlarmName"></a>

```typescript
import { ElastiCacheReplicationGroupEngineCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ElastiCacheReplicationGroupRecommendedAlarms <a name="ElastiCacheReplicationGroupRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms"></a>

A construct that creates the recommended alarms for an ElastiCache CfnReplicationGroup.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ElastiCache](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ElastiCache)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.Initializer"></a>

```typescript
import { ElastiCacheReplicationGroupRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ElastiCacheReplicationGroupRecommendedAlarms(scope: Construct, id: string, props: ElastiCacheReplicationGroupRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps">ElastiCacheReplicationGroupRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps">ElastiCacheReplicationGroupRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.isConstruct"></a>

```typescript
import { ElastiCacheReplicationGroupRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.property.alarmDatabaseMemoryUsagePercentage">alarmDatabaseMemoryUsagePercentage</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm">ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm</a></code> | The DatabaseMemoryUsagePercentage alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.property.alarmEngineCpuUtilization">alarmEngineCpuUtilization</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm">ElastiCacheReplicationGroupEngineCpuUtilizationAlarm</a></code> | The EngineCpuUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.property.alarmReplicationLag">alarmReplicationLag</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm">ElastiCacheReplicationGroupReplicationLagAlarm</a></code> | The ReplicationLag alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmDatabaseMemoryUsagePercentage`<sup>Optional</sup> <a name="alarmDatabaseMemoryUsagePercentage" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.property.alarmDatabaseMemoryUsagePercentage"></a>

```typescript
public readonly alarmDatabaseMemoryUsagePercentage: ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm">ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm</a>

The DatabaseMemoryUsagePercentage alarm.

---

##### `alarmEngineCpuUtilization`<sup>Optional</sup> <a name="alarmEngineCpuUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.property.alarmEngineCpuUtilization"></a>

```typescript
public readonly alarmEngineCpuUtilization: ElastiCacheReplicationGroupEngineCpuUtilizationAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarm">ElastiCacheReplicationGroupEngineCpuUtilizationAlarm</a>

The EngineCpuUtilization alarm.

---

##### `alarmReplicationLag`<sup>Optional</sup> <a name="alarmReplicationLag" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarms.property.alarmReplicationLag"></a>

```typescript
public readonly alarmReplicationLag: ElastiCacheReplicationGroupReplicationLagAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm">ElastiCacheReplicationGroupReplicationLagAlarm</a>

The ReplicationLag alarm.

---


### ElastiCacheReplicationGroupReplicationLagAlarm <a name="ElastiCacheReplicationGroupReplicationLagAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm"></a>

This alarm helps to monitor the replication health of your ElastiCache cluster.

A high replication lag means that the primary node or the replica can't keep up the pace of the replication. If your write
activity is too high, consider scaling your cluster out by adding more primary nodes, or scaling it up by using a larger node type.
Refer to {@link https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Scaling.html Scaling ElastiCache for Redis OSS clusters} for
details. If your read replicas are overloaded by the amount of read requests,
consider adding more read replicas.

The alarm is triggered when the number of milliseconds exceeds the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.Initializer"></a>

```typescript
import { ElastiCacheReplicationGroupReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ElastiCacheReplicationGroupReplicationLagAlarm(scope: IConstruct, id: string, props: ElastiCacheReplicationGroupReplicationLagAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps">ElastiCacheReplicationGroupReplicationLagAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps">ElastiCacheReplicationGroupReplicationLagAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.isConstruct"></a>

```typescript
import { ElastiCacheReplicationGroupReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupReplicationLagAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.isOwnedResource"></a>

```typescript
import { ElastiCacheReplicationGroupReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupReplicationLagAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.isResource"></a>

```typescript
import { ElastiCacheReplicationGroupReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupReplicationLagAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.fromAlarmArn"></a>

```typescript
import { ElastiCacheReplicationGroupReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupReplicationLagAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.fromAlarmName"></a>

```typescript
import { ElastiCacheReplicationGroupReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ElastiCacheReplicationGroupReplicationLagAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### FargateService <a name="FargateService" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService"></a>

An extension for the FargateService construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.Initializer"></a>

```typescript
import { FargateService } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new FargateService(scope: Construct, id: string, props: FargateServiceProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_ecs.FargateServiceProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_ecs.FargateServiceProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.addLifecycleHook">addLifecycleHook</a></code> | Add a deployment lifecycle hook target. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.addVolume">addVolume</a></code> | Adds a volume to the Service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.associateCloudMapService">associateCloudMapService</a></code> | Associates this service with a CloudMap service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.attachToApplicationTargetGroup">attachToApplicationTargetGroup</a></code> | This method is called to attach this service to an Application Load Balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.attachToClassicLB">attachToClassicLB</a></code> | Registers the service as a target of a Classic Load Balancer (CLB). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.attachToNetworkTargetGroup">attachToNetworkTargetGroup</a></code> | This method is called to attach this service to a Network Load Balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.autoScaleTaskCount">autoScaleTaskCount</a></code> | An attribute representing the minimum and maximum task count for an AutoScalingGroup. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.enableCloudMap">enableCloudMap</a></code> | Enable CloudMap service discovery for the service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.enableDeploymentAlarms">enableDeploymentAlarms</a></code> | Enable Deployment Alarms which take advantage of arbitrary alarms and configure them after service initialization. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.enableServiceConnect">enableServiceConnect</a></code> | Enable Service Connect on this service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.forceNewDeployment">forceNewDeployment</a></code> | Forces a new deployment of the service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.isUsingECSDeploymentController">isUsingECSDeploymentController</a></code> | Checks if the service is using the ECS deployment controller. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.loadBalancerTarget">loadBalancerTarget</a></code> | Return a load balancing target for a specific container and port. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.metric">metric</a></code> | This method returns the specified CloudWatch metric name for this service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.metricCpuUtilization">metricCpuUtilization</a></code> | This method returns the CloudWatch metric for this service's CPU utilization. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.metricMemoryUtilization">metricMemoryUtilization</a></code> | This method returns the CloudWatch metric for this service's memory utilization. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.registerLoadBalancerTargets">registerLoadBalancerTargets</a></code> | Use this function to create all load balancer targets to be registered in this service, add them to target groups, and attach target groups to listeners accordingly. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.alarmCpuUtilization">alarmCpuUtilization</a></code> | Creates an alarm that monitors the CPU utilization for the Fargate service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.alarmEphemeralStorageUtilized">alarmEphemeralStorageUtilized</a></code> | Creates an alarm that monitors the ephemeral storage utilized for the Fargate service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.alarmMemoryUtilization">alarmMemoryUtilization</a></code> | Creates an alarm that monitors the memory utilization for the Fargate service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.alarmRunningTaskCount">alarmRunningTaskCount</a></code> | Creates an alarm that monitors the number of task running. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the ECS service. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addLifecycleHook` <a name="addLifecycleHook" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.addLifecycleHook"></a>

```typescript
public addLifecycleHook(target: IDeploymentLifecycleHookTarget): void
```

Add a deployment lifecycle hook target.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.addLifecycleHook.parameter.target"></a>

- *Type:* aws-cdk-lib.aws_ecs.IDeploymentLifecycleHookTarget

The lifecycle hook target to add.

---

##### `addVolume` <a name="addVolume" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.addVolume"></a>

```typescript
public addVolume(volume: ServiceManagedVolume): void
```

Adds a volume to the Service.

###### `volume`<sup>Required</sup> <a name="volume" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.addVolume.parameter.volume"></a>

- *Type:* aws-cdk-lib.aws_ecs.ServiceManagedVolume

---

##### `associateCloudMapService` <a name="associateCloudMapService" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.associateCloudMapService"></a>

```typescript
public associateCloudMapService(options: AssociateCloudMapServiceOptions): void
```

Associates this service with a CloudMap service.

###### `options`<sup>Required</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.associateCloudMapService.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_ecs.AssociateCloudMapServiceOptions

---

##### `attachToApplicationTargetGroup` <a name="attachToApplicationTargetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.attachToApplicationTargetGroup"></a>

```typescript
public attachToApplicationTargetGroup(targetGroup: IApplicationTargetGroup): LoadBalancerTargetProps
```

This method is called to attach this service to an Application Load Balancer.

Don't call this function directly. Instead, call `listener.addTargets()`
to add this service to a load balancer.

###### `targetGroup`<sup>Required</sup> <a name="targetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.attachToApplicationTargetGroup.parameter.targetGroup"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationTargetGroup

---

##### `attachToClassicLB` <a name="attachToClassicLB" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.attachToClassicLB"></a>

```typescript
public attachToClassicLB(loadBalancer: LoadBalancer): void
```

Registers the service as a target of a Classic Load Balancer (CLB).

Don't call this. Call `loadBalancer.addTarget()` instead.

###### `loadBalancer`<sup>Required</sup> <a name="loadBalancer" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.attachToClassicLB.parameter.loadBalancer"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancing.LoadBalancer

---

##### `attachToNetworkTargetGroup` <a name="attachToNetworkTargetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.attachToNetworkTargetGroup"></a>

```typescript
public attachToNetworkTargetGroup(targetGroup: INetworkTargetGroup): LoadBalancerTargetProps
```

This method is called to attach this service to a Network Load Balancer.

Don't call this function directly. Instead, call `listener.addTargets()`
to add this service to a load balancer.

###### `targetGroup`<sup>Required</sup> <a name="targetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.attachToNetworkTargetGroup.parameter.targetGroup"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.INetworkTargetGroup

---

##### `autoScaleTaskCount` <a name="autoScaleTaskCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.autoScaleTaskCount"></a>

```typescript
public autoScaleTaskCount(props: EnableScalingProps): ScalableTaskCount
```

An attribute representing the minimum and maximum task count for an AutoScalingGroup.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.autoScaleTaskCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_applicationautoscaling.EnableScalingProps

---

##### `enableCloudMap` <a name="enableCloudMap" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.enableCloudMap"></a>

```typescript
public enableCloudMap(options: CloudMapOptions): Service
```

Enable CloudMap service discovery for the service.

###### `options`<sup>Required</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.enableCloudMap.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_ecs.CloudMapOptions

---

##### `enableDeploymentAlarms` <a name="enableDeploymentAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.enableDeploymentAlarms"></a>

```typescript
public enableDeploymentAlarms(alarmNames: string[], options?: DeploymentAlarmOptions): void
```

Enable Deployment Alarms which take advantage of arbitrary alarms and configure them after service initialization.

If you have already enabled deployment alarms, this function can be used to tell ECS about additional alarms that
should interrupt a deployment.

New alarms specified in subsequent calls of this function will be appended to the existing list of alarms.

The same Alarm Behavior must be used on all deployment alarms. If you specify different AlarmBehavior values in
multiple calls to this function, or the Alarm Behavior used here doesn't match the one used in the service
constructor, an error will be thrown.

If the alarm's metric references the service, you cannot pass `Alarm.alarmName` here. That will cause a circular
dependency between the service and its deployment alarm. See this package's README for options to alarm on service
metrics, and avoid this circular dependency.

###### `alarmNames`<sup>Required</sup> <a name="alarmNames" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.enableDeploymentAlarms.parameter.alarmNames"></a>

- *Type:* string[]

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.enableDeploymentAlarms.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_ecs.DeploymentAlarmOptions

---

##### `enableServiceConnect` <a name="enableServiceConnect" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.enableServiceConnect"></a>

```typescript
public enableServiceConnect(config?: ServiceConnectProps): void
```

Enable Service Connect on this service.

###### `config`<sup>Optional</sup> <a name="config" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.enableServiceConnect.parameter.config"></a>

- *Type:* aws-cdk-lib.aws_ecs.ServiceConnectProps

---

##### `forceNewDeployment` <a name="forceNewDeployment" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.forceNewDeployment"></a>

```typescript
public forceNewDeployment(nonce?: string): void
```

Forces a new deployment of the service.

This can be used to trigger a deployment without changing the task definition or desired count.
ECS will start a new deployment even if there are no changes to the service configuration.

**Important:** When called without a nonce, a timestamp is generated automatically, which means
every `cdk synth` produces a different template and every `cdk deploy` triggers a new deployment
regardless of whether any code has changed. To avoid this, provide a stable nonce value that only
changes when you intentionally want to force a redeployment (e.g., an image digest or a version string).

###### `nonce`<sup>Optional</sup> <a name="nonce" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.forceNewDeployment.parameter.nonce"></a>

- *Type:* string

A unique string (1-255 characters) that signals ECS to start a new deployment.

If not provided, a timestamp-based nonce is generated.

---

##### `isUsingECSDeploymentController` <a name="isUsingECSDeploymentController" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.isUsingECSDeploymentController"></a>

```typescript
public isUsingECSDeploymentController(): boolean
```

Checks if the service is using the ECS deployment controller.

##### `loadBalancerTarget` <a name="loadBalancerTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.loadBalancerTarget"></a>

```typescript
public loadBalancerTarget(options: LoadBalancerTargetOptions): IEcsLoadBalancerTarget
```

Return a load balancing target for a specific container and port.

Use this function to create a load balancer target if you want to load balance to
another container than the first essential container or the first mapped port on
the container.

Use the return value of this function where you would normally use a load balancer
target, instead of the `Service` object itself.

*Example*

```typescript
declare const listener: elbv2.ApplicationListener;
declare const service: ecs.BaseService;
listener.addTargets('ECS', {
  port: 80,
  targets: [service.loadBalancerTarget({
    containerName: 'MyContainer',
    containerPort: 1234,
  })],
});
```


###### `options`<sup>Required</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.loadBalancerTarget.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_ecs.LoadBalancerTargetOptions

---

##### `metric` <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.metric"></a>

```typescript
public metric(metricName: string, props?: MetricOptions): Metric
```

This method returns the specified CloudWatch metric name for this service.

###### `metricName`<sup>Required</sup> <a name="metricName" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.metric.parameter.metricName"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.metric.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricCpuUtilization` <a name="metricCpuUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.metricCpuUtilization"></a>

```typescript
public metricCpuUtilization(props?: MetricOptions): Metric
```

This method returns the CloudWatch metric for this service's CPU utilization.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.metricCpuUtilization.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricMemoryUtilization` <a name="metricMemoryUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.metricMemoryUtilization"></a>

```typescript
public metricMemoryUtilization(props?: MetricOptions): Metric
```

This method returns the CloudWatch metric for this service's memory utilization.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.metricMemoryUtilization.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `registerLoadBalancerTargets` <a name="registerLoadBalancerTargets" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.registerLoadBalancerTargets"></a>

```typescript
public registerLoadBalancerTargets(targets: ...EcsTarget[]): void
```

Use this function to create all load balancer targets to be registered in this service, add them to target groups, and attach target groups to listeners accordingly.

Alternatively, you can use `listener.addTargets()` to create targets and add them to target groups.

*Example*

```typescript
declare const listener: elbv2.ApplicationListener;
declare const service: ecs.BaseService;
service.registerLoadBalancerTargets(
  {
    containerName: 'web',
    containerPort: 80,
    newTargetGroupId: 'ECS',
    listener: ecs.ListenerConfig.applicationListener(listener, {
      protocol: elbv2.ApplicationProtocol.HTTPS
    }),
  },
)
```


###### `targets`<sup>Required</sup> <a name="targets" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.registerLoadBalancerTargets.parameter.targets"></a>

- *Type:* ...aws-cdk-lib.aws_ecs.EcsTarget[]

---

##### `alarmCpuUtilization` <a name="alarmCpuUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.alarmCpuUtilization"></a>

```typescript
public alarmCpuUtilization(props?: EcsCpuUtilizationAlarmConfig): EcsServiceCpuUtilizationAlarm
```

Creates an alarm that monitors the CPU utilization for the Fargate service.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.alarmCpuUtilization.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig">EcsCpuUtilizationAlarmConfig</a>

---

##### `alarmEphemeralStorageUtilized` <a name="alarmEphemeralStorageUtilized" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.alarmEphemeralStorageUtilized"></a>

```typescript
public alarmEphemeralStorageUtilized(props: EcsEphemeralStorageUtilizedAlarmConfig): EcsServiceEphemeralStorageUtilizedAlarm
```

Creates an alarm that monitors the ephemeral storage utilized for the Fargate service.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.alarmEphemeralStorageUtilized.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig">EcsEphemeralStorageUtilizedAlarmConfig</a>

---

##### `alarmMemoryUtilization` <a name="alarmMemoryUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.alarmMemoryUtilization"></a>

```typescript
public alarmMemoryUtilization(props?: EcsMemoryUtilizationAlarmConfig): EcsServiceMemoryUtilizationAlarm
```

Creates an alarm that monitors the memory utilization for the Fargate service.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.alarmMemoryUtilization.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig">EcsMemoryUtilizationAlarmConfig</a>

---

##### `alarmRunningTaskCount` <a name="alarmRunningTaskCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.alarmRunningTaskCount"></a>

```typescript
public alarmRunningTaskCount(props?: EcsRunningTaskCountAlarmConfig): EcsServiceRunningTaskCountAlarm
```

Creates an alarm that monitors the number of task running.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.alarmRunningTaskCount.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig">EcsRunningTaskCountAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: EcsServiceRecommendedAlarmsConfig): EcsServiceRecommendedAlarms
```

Creates the recommended alarms for the ECS service.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ECS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ECS)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig">EcsServiceRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.fromServiceArnWithCluster">fromServiceArnWithCluster</a></code> | Import an existing ECS/Fargate Service using the service cluster format. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.fromFargateServiceArn">fromFargateServiceArn</a></code> | Imports from the specified service ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.fromFargateServiceAttributes">fromFargateServiceAttributes</a></code> | Imports from the specified service attributes. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.isConstruct"></a>

```typescript
import { FargateService } from '@renovosolutions/cdk-library-cloudwatch-alarms'

FargateService.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.isOwnedResource"></a>

```typescript
import { FargateService } from '@renovosolutions/cdk-library-cloudwatch-alarms'

FargateService.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.isResource"></a>

```typescript
import { FargateService } from '@renovosolutions/cdk-library-cloudwatch-alarms'

FargateService.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromServiceArnWithCluster` <a name="fromServiceArnWithCluster" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.fromServiceArnWithCluster"></a>

```typescript
import { FargateService } from '@renovosolutions/cdk-library-cloudwatch-alarms'

FargateService.fromServiceArnWithCluster(scope: Construct, id: string, serviceArn: string)
```

Import an existing ECS/Fargate Service using the service cluster format.

The format is the "new" format "arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name".

> [https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids)

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.fromServiceArnWithCluster.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.fromServiceArnWithCluster.parameter.id"></a>

- *Type:* string

---

###### `serviceArn`<sup>Required</sup> <a name="serviceArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.fromServiceArnWithCluster.parameter.serviceArn"></a>

- *Type:* string

---

##### `fromFargateServiceArn` <a name="fromFargateServiceArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.fromFargateServiceArn"></a>

```typescript
import { FargateService } from '@renovosolutions/cdk-library-cloudwatch-alarms'

FargateService.fromFargateServiceArn(scope: Construct, id: string, fargateServiceArn: string)
```

Imports from the specified service ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.fromFargateServiceArn.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.fromFargateServiceArn.parameter.id"></a>

- *Type:* string

---

###### `fargateServiceArn`<sup>Required</sup> <a name="fargateServiceArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.fromFargateServiceArn.parameter.fargateServiceArn"></a>

- *Type:* string

---

##### `fromFargateServiceAttributes` <a name="fromFargateServiceAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.fromFargateServiceAttributes"></a>

```typescript
import { FargateService } from '@renovosolutions/cdk-library-cloudwatch-alarms'

FargateService.fromFargateServiceAttributes(scope: Construct, id: string, attrs: FargateServiceAttributes)
```

Imports from the specified service attributes.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.fromFargateServiceAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.fromFargateServiceAttributes.parameter.id"></a>

- *Type:* string

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.fromFargateServiceAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_ecs.FargateServiceAttributes

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.cluster">cluster</a></code> | <code>aws-cdk-lib.aws_ecs.ICluster</code> | The cluster that hosts the service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.connections">connections</a></code> | <code>aws-cdk-lib.aws_ec2.Connections</code> | The security groups which manage the allowed network traffic for the service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.serviceArn">serviceArn</a></code> | <code>string</code> | The Amazon Resource Name (ARN) of the service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.serviceName">serviceName</a></code> | <code>string</code> | The name of the service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.serviceRef">serviceRef</a></code> | <code>aws-cdk-lib.interfaces.aws_ecs.ServiceReference</code> | A reference to this service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.taskDefinition">taskDefinition</a></code> | <code>aws-cdk-lib.aws_ecs.TaskDefinition</code> | The task definition to use for tasks in the service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.cloudMapService">cloudMapService</a></code> | <code>aws-cdk-lib.aws_servicediscovery.IService</code> | The CloudMap service created for this service, if any. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `cluster`<sup>Required</sup> <a name="cluster" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.cluster"></a>

```typescript
public readonly cluster: ICluster;
```

- *Type:* aws-cdk-lib.aws_ecs.ICluster

The cluster that hosts the service.

---

##### `connections`<sup>Required</sup> <a name="connections" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.connections"></a>

```typescript
public readonly connections: Connections;
```

- *Type:* aws-cdk-lib.aws_ec2.Connections

The security groups which manage the allowed network traffic for the service.

---

##### `serviceArn`<sup>Required</sup> <a name="serviceArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.serviceArn"></a>

```typescript
public readonly serviceArn: string;
```

- *Type:* string

The Amazon Resource Name (ARN) of the service.

---

##### `serviceName`<sup>Required</sup> <a name="serviceName" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.serviceName"></a>

```typescript
public readonly serviceName: string;
```

- *Type:* string

The name of the service.

---

##### `serviceRef`<sup>Required</sup> <a name="serviceRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.serviceRef"></a>

```typescript
public readonly serviceRef: ServiceReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_ecs.ServiceReference

A reference to this service.

---

##### `taskDefinition`<sup>Required</sup> <a name="taskDefinition" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.taskDefinition"></a>

```typescript
public readonly taskDefinition: TaskDefinition;
```

- *Type:* aws-cdk-lib.aws_ecs.TaskDefinition

The task definition to use for tasks in the service.

---

##### `cloudMapService`<sup>Optional</sup> <a name="cloudMapService" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.cloudMapService"></a>

```typescript
public readonly cloudMapService: IService;
```

- *Type:* aws-cdk-lib.aws_servicediscovery.IService

The CloudMap service created for this service, if any.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.FargateService.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### FileSystem <a name="FileSystem" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem"></a>

An extension for the FileSystem construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.Initializer"></a>

```typescript
import { FileSystem } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new FileSystem(scope: Construct, id: string, props: FileSystemProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_efs.FileSystemProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_efs.FileSystemProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.addAccessPoint">addAccessPoint</a></code> | create access point from this filesystem. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.addToResourcePolicy">addToResourcePolicy</a></code> | Adds a statement to the resource policy associated with this file system. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.grant">grant</a></code> | Grant the actions defined in actions to the given grantee on this File System resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.grantRead">grantRead</a></code> | Grant read permissions for this file system to an IAM principal. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.grantReadWrite">grantReadWrite</a></code> | Grant read and write permissions for this file system to an IAM principal. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.grantRootAccess">grantRootAccess</a></code> | As root user, grant read and write permissions for this file system to an IAM principal. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.alarmBurstCreditBalance">alarmBurstCreditBalance</a></code> | Creates an alarm that monitors the BurstCreditBalance for the EFS fileSystem. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.alarmPercentIOLimit">alarmPercentIOLimit</a></code> | Creates an alarm that monitors the PercentIOLimit for the EFS fileSystem. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the EFS FileSystem. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAccessPoint` <a name="addAccessPoint" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.addAccessPoint"></a>

```typescript
public addAccessPoint(id: string, accessPointOptions?: AccessPointOptions): AccessPoint
```

create access point from this filesystem.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.addAccessPoint.parameter.id"></a>

- *Type:* string

---

###### `accessPointOptions`<sup>Optional</sup> <a name="accessPointOptions" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.addAccessPoint.parameter.accessPointOptions"></a>

- *Type:* aws-cdk-lib.aws_efs.AccessPointOptions

---

##### `addToResourcePolicy` <a name="addToResourcePolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.addToResourcePolicy"></a>

```typescript
public addToResourcePolicy(statement: PolicyStatement): AddToResourcePolicyResult
```

Adds a statement to the resource policy associated with this file system.

A resource policy will be automatically created upon the first call to `addToResourcePolicy`.

Note that this does not work with imported file systems.

###### `statement`<sup>Required</sup> <a name="statement" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.addToResourcePolicy.parameter.statement"></a>

- *Type:* aws-cdk-lib.aws_iam.PolicyStatement

The policy statement to add.

---

##### `grant` <a name="grant" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.grant"></a>

```typescript
public grant(grantee: IGrantable, actions: ...string[]): Grant
```

Grant the actions defined in actions to the given grantee on this File System resource.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.grant.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

Principal to grant right to.

---

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.grant.parameter.actions"></a>

- *Type:* ...string[]

The actions to grant.

---

##### `grantRead` <a name="grantRead" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.grantRead"></a>

```typescript
public grantRead(grantee: IGrantable): Grant
```

Grant read permissions for this file system to an IAM principal.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.grantRead.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal to grant read to.

---

##### `grantReadWrite` <a name="grantReadWrite" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.grantReadWrite"></a>

```typescript
public grantReadWrite(grantee: IGrantable): Grant
```

Grant read and write permissions for this file system to an IAM principal.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.grantReadWrite.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal to grant read and write to.

---

##### `grantRootAccess` <a name="grantRootAccess" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.grantRootAccess"></a>

```typescript
public grantRootAccess(grantee: IGrantable): Grant
```

As root user, grant read and write permissions for this file system to an IAM principal.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.grantRootAccess.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal to grant root access to.

---

##### `alarmBurstCreditBalance` <a name="alarmBurstCreditBalance" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.alarmBurstCreditBalance"></a>

```typescript
public alarmBurstCreditBalance(props?: EfsBurstCreditBalanceAlarmConfig): EfsFileSystemBurstCreditBalanceAlarm
```

Creates an alarm that monitors the BurstCreditBalance for the EFS fileSystem.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.alarmBurstCreditBalance.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig">EfsBurstCreditBalanceAlarmConfig</a>

---

##### `alarmPercentIOLimit` <a name="alarmPercentIOLimit" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.alarmPercentIOLimit"></a>

```typescript
public alarmPercentIOLimit(props?: EfsPercentIOLimitAlarmConfig): EfsFileSystemPercentIOLimitAlarm
```

Creates an alarm that monitors the PercentIOLimit for the EFS fileSystem.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.alarmPercentIOLimit.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig">EfsPercentIOLimitAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props?: EfsFileSystemRecommendedAlarmsConfig): EfsFileSystemRecommendedAlarms
```

Creates the recommended alarms for the EFS FileSystem.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EFS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EFS)

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig">EfsFileSystemRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.fromFileSystemAttributes">fromFileSystemAttributes</a></code> | Import an existing File System from the given properties. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.isConstruct"></a>

```typescript
import { FileSystem } from '@renovosolutions/cdk-library-cloudwatch-alarms'

FileSystem.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.isOwnedResource"></a>

```typescript
import { FileSystem } from '@renovosolutions/cdk-library-cloudwatch-alarms'

FileSystem.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.isResource"></a>

```typescript
import { FileSystem } from '@renovosolutions/cdk-library-cloudwatch-alarms'

FileSystem.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromFileSystemAttributes` <a name="fromFileSystemAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.fromFileSystemAttributes"></a>

```typescript
import { FileSystem } from '@renovosolutions/cdk-library-cloudwatch-alarms'

FileSystem.fromFileSystemAttributes(scope: Construct, id: string, attrs: FileSystemAttributes)
```

Import an existing File System from the given properties.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.fromFileSystemAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.fromFileSystemAttributes.parameter.id"></a>

- *Type:* string

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.fromFileSystemAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_efs.FileSystemAttributes

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.connections">connections</a></code> | <code>aws-cdk-lib.aws_ec2.Connections</code> | The security groups/rules used to allow network connections to the file system. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.fileSystemArn">fileSystemArn</a></code> | <code>string</code> | The ARN of the file system. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.fileSystemId">fileSystemId</a></code> | <code>string</code> | The ID of the file system, assigned by Amazon EFS. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.fileSystemRef">fileSystemRef</a></code> | <code>aws-cdk-lib.interfaces.aws_efs.FileSystemReference</code> | A reference to a FileSystem resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.mountTargetsAvailable">mountTargetsAvailable</a></code> | <code>constructs.IDependable</code> | Dependable that can be depended upon to ensure the mount targets of the filesystem are ready. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `connections`<sup>Required</sup> <a name="connections" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.connections"></a>

```typescript
public readonly connections: Connections;
```

- *Type:* aws-cdk-lib.aws_ec2.Connections

The security groups/rules used to allow network connections to the file system.

---

##### `fileSystemArn`<sup>Required</sup> <a name="fileSystemArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.fileSystemArn"></a>

```typescript
public readonly fileSystemArn: string;
```

- *Type:* string

The ARN of the file system.

---

##### `fileSystemId`<sup>Required</sup> <a name="fileSystemId" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.fileSystemId"></a>

```typescript
public readonly fileSystemId: string;
```

- *Type:* string

The ID of the file system, assigned by Amazon EFS.

---

##### `fileSystemRef`<sup>Required</sup> <a name="fileSystemRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.fileSystemRef"></a>

```typescript
public readonly fileSystemRef: FileSystemReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_efs.FileSystemReference

A reference to a FileSystem resource.

---

##### `mountTargetsAvailable`<sup>Required</sup> <a name="mountTargetsAvailable" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.mountTargetsAvailable"></a>

```typescript
public readonly mountTargetsAvailable: IDependable;
```

- *Type:* constructs.IDependable

Dependable that can be depended upon to ensure the mount targets of the filesystem are ready.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.DEFAULT_PORT">DEFAULT_PORT</a></code> | <code>number</code> | The default port File System listens on. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `DEFAULT_PORT`<sup>Required</sup> <a name="DEFAULT_PORT" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.DEFAULT_PORT"></a>

```typescript
public readonly DEFAULT_PORT: number;
```

- *Type:* number

The default port File System listens on.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.FileSystem.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### Function <a name="Function" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function"></a>

An extension of the Lambda function construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.Initializer"></a>

```typescript
import { Function } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new Function(scope: Construct, id: string, props: FunctionProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_lambda.FunctionProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_lambda.FunctionProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.addEventSource">addEventSource</a></code> | Adds an event source to this function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.addEventSourceMapping">addEventSourceMapping</a></code> | Adds an event source that maps to this AWS Lambda function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.addFunctionUrl">addFunctionUrl</a></code> | Adds a url to this lambda function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.addPermission">addPermission</a></code> | Adds a permission to the Lambda resource policy. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.addToRolePolicy">addToRolePolicy</a></code> | Adds a statement to the IAM role assumed by the instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.configureAsyncInvoke">configureAsyncInvoke</a></code> | Configures options for asynchronous invocation. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.considerWarningOnInvokeFunctionPermissions">considerWarningOnInvokeFunctionPermissions</a></code> | A warning will be added to functions under the following conditions: - permissions that include `lambda:InvokeFunction` are added to the unqualified function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvoke">grantInvoke</a></code> | Grant the given identity permissions to invoke this Lambda. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvokeCompositePrincipal">grantInvokeCompositePrincipal</a></code> | Grant multiple principals the ability to invoke this Lambda via CompositePrincipal. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvokeLatestVersion">grantInvokeLatestVersion</a></code> | Grant the given identity permissions to invoke the $LATEST version or unqualified version of this Lambda. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvokeUrl">grantInvokeUrl</a></code> | Grant the given identity permissions to invoke this Lambda Function URL. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvokeVersion">grantInvokeVersion</a></code> | Grant the given identity permissions to invoke the given version of this Lambda. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.metric">metric</a></code> | Return the given named metric for this Function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricDuration">metricDuration</a></code> | How long execution of this Lambda takes. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricErrors">metricErrors</a></code> | How many invocations of this Lambda fail. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricInvocations">metricInvocations</a></code> | How often this Lambda is invoked. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricThrottles">metricThrottles</a></code> | How often this Lambda is throttled. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.addAlias">addAlias</a></code> | Defines an alias for this function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.addEnvironment">addEnvironment</a></code> | Adds an environment variable to this Lambda function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.addLayers">addLayers</a></code> | Adds one or more Lambda Layers to this Lambda function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.invalidateVersionBasedOn">invalidateVersionBasedOn</a></code> | Mix additional information into the hash of the Version object. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.alarmConcurrentExecutions">alarmConcurrentExecutions</a></code> | Creates an alarm that monitors the number of concurrent executions. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.alarmDuration">alarmDuration</a></code> | Creates an alarm that monitors the duration of the function invocations. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.alarmErrors">alarmErrors</a></code> | Creates an alarm that monitors the number of errors. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.alarmThrottles">alarmThrottles</a></code> | Creates an alarm that monitors the number of throttles. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates recommended alarms for the Lambda function. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addEventSource` <a name="addEventSource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addEventSource"></a>

```typescript
public addEventSource(source: IEventSource): void
```

Adds an event source to this function.

Event sources are implemented in the aws-cdk-lib/aws-lambda-event-sources module.

The following example adds an SQS Queue as an event source:
```
import { SqsEventSource } from 'aws-cdk-lib/aws-lambda-event-sources';
myFunction.addEventSource(new SqsEventSource(myQueue));
```

###### `source`<sup>Required</sup> <a name="source" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addEventSource.parameter.source"></a>

- *Type:* aws-cdk-lib.aws_lambda.IEventSource

---

##### `addEventSourceMapping` <a name="addEventSourceMapping" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addEventSourceMapping"></a>

```typescript
public addEventSourceMapping(id: string, options: EventSourceMappingOptions): EventSourceMapping
```

Adds an event source that maps to this AWS Lambda function.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addEventSourceMapping.parameter.id"></a>

- *Type:* string

---

###### `options`<sup>Required</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addEventSourceMapping.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_lambda.EventSourceMappingOptions

---

##### `addFunctionUrl` <a name="addFunctionUrl" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addFunctionUrl"></a>

```typescript
public addFunctionUrl(options?: FunctionUrlOptions): FunctionUrl
```

Adds a url to this lambda function.

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addFunctionUrl.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_lambda.FunctionUrlOptions

---

##### `addPermission` <a name="addPermission" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addPermission"></a>

```typescript
public addPermission(id: string, permission: Permission): void
```

Adds a permission to the Lambda resource policy.

> [Permission for details.](Permission for details.)

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addPermission.parameter.id"></a>

- *Type:* string

The id for the permission construct.

---

###### `permission`<sup>Required</sup> <a name="permission" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addPermission.parameter.permission"></a>

- *Type:* aws-cdk-lib.aws_lambda.Permission

The permission to grant to this Lambda function.

---

##### `addToRolePolicy` <a name="addToRolePolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addToRolePolicy"></a>

```typescript
public addToRolePolicy(statement: PolicyStatement): void
```

Adds a statement to the IAM role assumed by the instance.

###### `statement`<sup>Required</sup> <a name="statement" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addToRolePolicy.parameter.statement"></a>

- *Type:* aws-cdk-lib.aws_iam.PolicyStatement

---

##### `configureAsyncInvoke` <a name="configureAsyncInvoke" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.configureAsyncInvoke"></a>

```typescript
public configureAsyncInvoke(options: EventInvokeConfigOptions): void
```

Configures options for asynchronous invocation.

###### `options`<sup>Required</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.configureAsyncInvoke.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_lambda.EventInvokeConfigOptions

---

##### `considerWarningOnInvokeFunctionPermissions` <a name="considerWarningOnInvokeFunctionPermissions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.considerWarningOnInvokeFunctionPermissions"></a>

```typescript
public considerWarningOnInvokeFunctionPermissions(scope: Construct, action: string): void
```

A warning will be added to functions under the following conditions: - permissions that include `lambda:InvokeFunction` are added to the unqualified function.

function.currentVersion is invoked before or after the permission is created.

This applies only to permissions on Lambda functions, not versions or aliases.
This function is overridden as a noOp for QualifiedFunctionBase.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.considerWarningOnInvokeFunctionPermissions.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `action`<sup>Required</sup> <a name="action" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.considerWarningOnInvokeFunctionPermissions.parameter.action"></a>

- *Type:* string

---

##### `grantInvoke` <a name="grantInvoke" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvoke"></a>

```typescript
public grantInvoke(grantee: IGrantable): Grant
```

Grant the given identity permissions to invoke this Lambda.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvoke.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

##### `grantInvokeCompositePrincipal` <a name="grantInvokeCompositePrincipal" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvokeCompositePrincipal"></a>

```typescript
public grantInvokeCompositePrincipal(compositePrincipal: CompositePrincipal): Grant[]
```

Grant multiple principals the ability to invoke this Lambda via CompositePrincipal.

[disable-awslint:no-grants]

###### `compositePrincipal`<sup>Required</sup> <a name="compositePrincipal" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvokeCompositePrincipal.parameter.compositePrincipal"></a>

- *Type:* aws-cdk-lib.aws_iam.CompositePrincipal

---

##### `grantInvokeLatestVersion` <a name="grantInvokeLatestVersion" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvokeLatestVersion"></a>

```typescript
public grantInvokeLatestVersion(grantee: IGrantable): Grant
```

Grant the given identity permissions to invoke the $LATEST version or unqualified version of this Lambda.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvokeLatestVersion.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

##### `grantInvokeUrl` <a name="grantInvokeUrl" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvokeUrl"></a>

```typescript
public grantInvokeUrl(grantee: IGrantable): Grant
```

Grant the given identity permissions to invoke this Lambda Function URL.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvokeUrl.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

##### `grantInvokeVersion` <a name="grantInvokeVersion" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvokeVersion"></a>

```typescript
public grantInvokeVersion(grantee: IGrantable, version: IVersion): Grant
```

Grant the given identity permissions to invoke the given version of this Lambda.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvokeVersion.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

###### `version`<sup>Required</sup> <a name="version" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.grantInvokeVersion.parameter.version"></a>

- *Type:* aws-cdk-lib.aws_lambda.IVersion

---

##### `metric` <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metric"></a>

```typescript
public metric(metricName: string, props?: MetricOptions): Metric
```

Return the given named metric for this Function.

###### `metricName`<sup>Required</sup> <a name="metricName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metric.parameter.metricName"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metric.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricDuration` <a name="metricDuration" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricDuration"></a>

```typescript
public metricDuration(props?: MetricOptions): Metric
```

How long execution of this Lambda takes.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricDuration.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricErrors` <a name="metricErrors" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricErrors"></a>

```typescript
public metricErrors(props?: MetricOptions): Metric
```

How many invocations of this Lambda fail.

Sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricErrors.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricInvocations` <a name="metricInvocations" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricInvocations"></a>

```typescript
public metricInvocations(props?: MetricOptions): Metric
```

How often this Lambda is invoked.

Sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricInvocations.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricThrottles` <a name="metricThrottles" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricThrottles"></a>

```typescript
public metricThrottles(props?: MetricOptions): Metric
```

How often this Lambda is throttled.

Sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricThrottles.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `addAlias` <a name="addAlias" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addAlias"></a>

```typescript
public addAlias(aliasName: string, options?: AliasOptions): Alias
```

Defines an alias for this function.

The alias will automatically be updated to point to the latest version of
the function as it is being updated during a deployment.

```ts
declare const fn: lambda.Function;

fn.addAlias('Live');

// Is equivalent to

new lambda.Alias(this, 'AliasLive', {
  aliasName: 'Live',
  version: fn.currentVersion,
});
```

###### `aliasName`<sup>Required</sup> <a name="aliasName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addAlias.parameter.aliasName"></a>

- *Type:* string

The name of the alias.

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addAlias.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_lambda.AliasOptions

Alias options.

---

##### `addEnvironment` <a name="addEnvironment" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addEnvironment"></a>

```typescript
public addEnvironment(key: string, value: string, options?: EnvironmentOptions): Function
```

Adds an environment variable to this Lambda function.

If this is a ref to a Lambda function, this operation results in a no-op.

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addEnvironment.parameter.key"></a>

- *Type:* string

The environment variable key.

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addEnvironment.parameter.value"></a>

- *Type:* string

The environment variable's value.

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addEnvironment.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_lambda.EnvironmentOptions

Environment variable options.

---

##### `addLayers` <a name="addLayers" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addLayers"></a>

```typescript
public addLayers(layers: ...ILayerVersion[]): void
```

Adds one or more Lambda Layers to this Lambda function.

###### `layers`<sup>Required</sup> <a name="layers" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.addLayers.parameter.layers"></a>

- *Type:* ...aws-cdk-lib.aws_lambda.ILayerVersion[]

the layers to be added.

---

##### `invalidateVersionBasedOn` <a name="invalidateVersionBasedOn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.invalidateVersionBasedOn"></a>

```typescript
public invalidateVersionBasedOn(x: string): void
```

Mix additional information into the hash of the Version object.

The Lambda Function construct does its best to automatically create a new
Version when anything about the Function changes (its code, its layers,
any of the other properties).

However, you can sometimes source information from places that the CDK cannot
look into, like the deploy-time values of SSM parameters. In those cases,
the CDK would not force the creation of a new Version object when it actually
should.

This method can be used to invalidate the current Version object. Pass in
any string into this method, and make sure the string changes when you know
a new Version needs to be created.

This method may be called more than once.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.invalidateVersionBasedOn.parameter.x"></a>

- *Type:* string

---

##### `alarmConcurrentExecutions` <a name="alarmConcurrentExecutions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.alarmConcurrentExecutions"></a>

```typescript
public alarmConcurrentExecutions(props?: LambdaConcurrentExecutionsAlarmConfig): LambdaConcurrentExecutionsAlarm
```

Creates an alarm that monitors the number of concurrent executions.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.alarmConcurrentExecutions.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig">LambdaConcurrentExecutionsAlarmConfig</a>

---

##### `alarmDuration` <a name="alarmDuration" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.alarmDuration"></a>

```typescript
public alarmDuration(props: LambdaDurationAlarmConfig): LambdaDurationAlarm
```

Creates an alarm that monitors the duration of the function invocations.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.alarmDuration.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig">LambdaDurationAlarmConfig</a>

---

##### `alarmErrors` <a name="alarmErrors" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.alarmErrors"></a>

```typescript
public alarmErrors(props: LambdaErrorsAlarmConfig): LambdaErrorsAlarm
```

Creates an alarm that monitors the number of errors.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.alarmErrors.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig">LambdaErrorsAlarmConfig</a>

---

##### `alarmThrottles` <a name="alarmThrottles" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.alarmThrottles"></a>

```typescript
public alarmThrottles(props: LambdaThrottlesAlarmConfig): LambdaThrottlesAlarm
```

Creates an alarm that monitors the number of throttles.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.alarmThrottles.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig">LambdaThrottlesAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: LambdaRecommendedAlarmsConfig): LambdaRecommendedAlarms
```

Creates recommended alarms for the Lambda function.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#Lambda](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#Lambda)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig">LambdaRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.classifyVersionProperty">classifyVersionProperty</a></code> | Record whether specific properties in the `AWS::Lambda::Function` resource should also be associated to the Version resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.fromFunctionArn">fromFunctionArn</a></code> | Import a lambda function into the CDK using its ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.fromFunctionAttributes">fromFunctionAttributes</a></code> | Creates a Lambda function object which represents a function not defined within this stack. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.fromFunctionName">fromFunctionName</a></code> | Import a lambda function into the CDK using its name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAll">metricAll</a></code> | Return the given named metric for this Lambda. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllConcurrentExecutions">metricAllConcurrentExecutions</a></code> | Metric for the number of concurrent executions across all Lambdas. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllDuration">metricAllDuration</a></code> | Metric for the Duration executing all Lambdas. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllErrors">metricAllErrors</a></code> | Metric for the number of Errors executing all Lambdas. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllInvocations">metricAllInvocations</a></code> | Metric for the number of invocations of all Lambdas. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllThrottles">metricAllThrottles</a></code> | Metric for the number of throttled invocations of all Lambdas. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllUnreservedConcurrentExecutions">metricAllUnreservedConcurrentExecutions</a></code> | Metric for the number of unreserved concurrent executions across all Lambdas. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.isConstruct"></a>

```typescript
import { Function } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Function.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.isOwnedResource"></a>

```typescript
import { Function } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Function.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.isResource"></a>

```typescript
import { Function } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Function.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `classifyVersionProperty` <a name="classifyVersionProperty" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.classifyVersionProperty"></a>

```typescript
import { Function } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Function.classifyVersionProperty(propertyName: string, locked: boolean)
```

Record whether specific properties in the `AWS::Lambda::Function` resource should also be associated to the Version resource.

See 'currentVersion' section in the module README for more details.

###### `propertyName`<sup>Required</sup> <a name="propertyName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.classifyVersionProperty.parameter.propertyName"></a>

- *Type:* string

The property to classify.

---

###### `locked`<sup>Required</sup> <a name="locked" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.classifyVersionProperty.parameter.locked"></a>

- *Type:* boolean

whether the property should be associated to the version or not.

---

##### `fromFunctionArn` <a name="fromFunctionArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.fromFunctionArn"></a>

```typescript
import { Function } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Function.fromFunctionArn(scope: Construct, id: string, functionArn: string)
```

Import a lambda function into the CDK using its ARN.

For `Function.addPermissions()` to work on this imported lambda, make sure that is
in the same account and region as the stack you are importing it into.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.fromFunctionArn.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.fromFunctionArn.parameter.id"></a>

- *Type:* string

---

###### `functionArn`<sup>Required</sup> <a name="functionArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.fromFunctionArn.parameter.functionArn"></a>

- *Type:* string

---

##### `fromFunctionAttributes` <a name="fromFunctionAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.fromFunctionAttributes"></a>

```typescript
import { Function } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Function.fromFunctionAttributes(scope: Construct, id: string, attrs: FunctionAttributes)
```

Creates a Lambda function object which represents a function not defined within this stack.

For `Function.addPermissions()` to work on this imported lambda, set the sameEnvironment property to true
if this imported lambda is in the same account and region as the stack you are importing it into.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.fromFunctionAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

The parent construct.

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.fromFunctionAttributes.parameter.id"></a>

- *Type:* string

The name of the lambda construct.

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.fromFunctionAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_lambda.FunctionAttributes

the attributes of the function to import.

---

##### `fromFunctionName` <a name="fromFunctionName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.fromFunctionName"></a>

```typescript
import { Function } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Function.fromFunctionName(scope: Construct, id: string, functionName: string)
```

Import a lambda function into the CDK using its name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.fromFunctionName.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.fromFunctionName.parameter.id"></a>

- *Type:* string

---

###### `functionName`<sup>Required</sup> <a name="functionName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.fromFunctionName.parameter.functionName"></a>

- *Type:* string

---

##### `metricAll` <a name="metricAll" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAll"></a>

```typescript
import { Function } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Function.metricAll(metricName: string, props?: MetricOptions)
```

Return the given named metric for this Lambda.

###### `metricName`<sup>Required</sup> <a name="metricName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAll.parameter.metricName"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAll.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricAllConcurrentExecutions` <a name="metricAllConcurrentExecutions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllConcurrentExecutions"></a>

```typescript
import { Function } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Function.metricAllConcurrentExecutions(props?: MetricOptions)
```

Metric for the number of concurrent executions across all Lambdas.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllConcurrentExecutions.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricAllDuration` <a name="metricAllDuration" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllDuration"></a>

```typescript
import { Function } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Function.metricAllDuration(props?: MetricOptions)
```

Metric for the Duration executing all Lambdas.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllDuration.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricAllErrors` <a name="metricAllErrors" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllErrors"></a>

```typescript
import { Function } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Function.metricAllErrors(props?: MetricOptions)
```

Metric for the number of Errors executing all Lambdas.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllErrors.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricAllInvocations` <a name="metricAllInvocations" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllInvocations"></a>

```typescript
import { Function } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Function.metricAllInvocations(props?: MetricOptions)
```

Metric for the number of invocations of all Lambdas.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllInvocations.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricAllThrottles` <a name="metricAllThrottles" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllThrottles"></a>

```typescript
import { Function } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Function.metricAllThrottles(props?: MetricOptions)
```

Metric for the number of throttled invocations of all Lambdas.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllThrottles.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricAllUnreservedConcurrentExecutions` <a name="metricAllUnreservedConcurrentExecutions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllUnreservedConcurrentExecutions"></a>

```typescript
import { Function } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Function.metricAllUnreservedConcurrentExecutions(props?: MetricOptions)
```

Metric for the number of unreserved concurrent executions across all Lambdas.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.metricAllUnreservedConcurrentExecutions.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.architecture">architecture</a></code> | <code>aws-cdk-lib.aws_lambda.Architecture</code> | The architecture of this Lambda Function (this is an optional attribute and defaults to X86_64). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.connections">connections</a></code> | <code>aws-cdk-lib.aws_ec2.Connections</code> | Access the Connections object. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.functionArn">functionArn</a></code> | <code>string</code> | ARN of this function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.functionName">functionName</a></code> | <code>string</code> | Name of this function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.functionRef">functionRef</a></code> | <code>aws-cdk-lib.interfaces.aws_lambda.FunctionReference</code> | A reference to a Function resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.grantPrincipal">grantPrincipal</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | The principal this Lambda Function is running as. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.isBoundToVpc">isBoundToVpc</a></code> | <code>boolean</code> | Whether or not this Lambda function was bound to a VPC. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.latestVersion">latestVersion</a></code> | <code>aws-cdk-lib.aws_lambda.IVersion</code> | The `$LATEST` version of this function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.permissionsNode">permissionsNode</a></code> | <code>constructs.Node</code> | The construct node where permissions are attached. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.resourceArnsForGrantInvoke">resourceArnsForGrantInvoke</a></code> | <code>string[]</code> | The ARN(s) to put into the resource field of the generated IAM policy for grantInvoke(). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.role">role</a></code> | <code>aws-cdk-lib.aws_iam.IRole</code> | Execution role associated with this function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.tenancyConfig">tenancyConfig</a></code> | <code>aws-cdk-lib.aws_lambda.TenancyConfig</code> | The tenancy configuration for this function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.currentVersion">currentVersion</a></code> | <code>aws-cdk-lib.aws_lambda.Version</code> | Returns a `lambda.Version` which represents the current version of this Lambda function. A new version will be created every time the function's configuration changes. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.logGroup">logGroup</a></code> | <code>aws-cdk-lib.aws_logs.ILogGroup</code> | The LogGroup where the Lambda function's logs are made available. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.runtime">runtime</a></code> | <code>aws-cdk-lib.aws_lambda.Runtime</code> | The runtime configured for this lambda. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.deadLetterQueue">deadLetterQueue</a></code> | <code>aws-cdk-lib.aws_sqs.IQueue</code> | The DLQ (as queue) associated with this Lambda Function (this is an optional attribute). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.deadLetterTopic">deadLetterTopic</a></code> | <code>aws-cdk-lib.aws_sns.ITopic</code> | The DLQ (as topic) associated with this Lambda Function (this is an optional attribute). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.timeout">timeout</a></code> | <code>aws-cdk-lib.Duration</code> | The timeout configured for this lambda. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `architecture`<sup>Required</sup> <a name="architecture" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.architecture"></a>

```typescript
public readonly architecture: Architecture;
```

- *Type:* aws-cdk-lib.aws_lambda.Architecture

The architecture of this Lambda Function (this is an optional attribute and defaults to X86_64).

---

##### `connections`<sup>Required</sup> <a name="connections" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.connections"></a>

```typescript
public readonly connections: Connections;
```

- *Type:* aws-cdk-lib.aws_ec2.Connections

Access the Connections object.

Will fail if not a VPC-enabled Lambda Function

---

##### `functionArn`<sup>Required</sup> <a name="functionArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.functionArn"></a>

```typescript
public readonly functionArn: string;
```

- *Type:* string

ARN of this function.

---

##### `functionName`<sup>Required</sup> <a name="functionName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.functionName"></a>

```typescript
public readonly functionName: string;
```

- *Type:* string

Name of this function.

---

##### `functionRef`<sup>Required</sup> <a name="functionRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.functionRef"></a>

```typescript
public readonly functionRef: FunctionReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_lambda.FunctionReference

A reference to a Function resource.

---

##### `grantPrincipal`<sup>Required</sup> <a name="grantPrincipal" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.grantPrincipal"></a>

```typescript
public readonly grantPrincipal: IPrincipal;
```

- *Type:* aws-cdk-lib.aws_iam.IPrincipal

The principal this Lambda Function is running as.

---

##### `isBoundToVpc`<sup>Required</sup> <a name="isBoundToVpc" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.isBoundToVpc"></a>

```typescript
public readonly isBoundToVpc: boolean;
```

- *Type:* boolean

Whether or not this Lambda function was bound to a VPC.

If this is is `false`, trying to access the `connections` object will fail.

---

##### `latestVersion`<sup>Required</sup> <a name="latestVersion" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.latestVersion"></a>

```typescript
public readonly latestVersion: IVersion;
```

- *Type:* aws-cdk-lib.aws_lambda.IVersion

The `$LATEST` version of this function.

Note that this is reference to a non-specific AWS Lambda version, which
means the function this version refers to can return different results in
different invocations.

To obtain a reference to an explicit version which references the current
function configuration, use `lambdaFunction.currentVersion` instead.

---

##### `permissionsNode`<sup>Required</sup> <a name="permissionsNode" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.permissionsNode"></a>

```typescript
public readonly permissionsNode: Node;
```

- *Type:* constructs.Node

The construct node where permissions are attached.

---

##### `resourceArnsForGrantInvoke`<sup>Required</sup> <a name="resourceArnsForGrantInvoke" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.resourceArnsForGrantInvoke"></a>

```typescript
public readonly resourceArnsForGrantInvoke: string[];
```

- *Type:* string[]

The ARN(s) to put into the resource field of the generated IAM policy for grantInvoke().

---

##### `role`<sup>Optional</sup> <a name="role" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.role"></a>

```typescript
public readonly role: IRole;
```

- *Type:* aws-cdk-lib.aws_iam.IRole

Execution role associated with this function.

---

##### `tenancyConfig`<sup>Optional</sup> <a name="tenancyConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.tenancyConfig"></a>

```typescript
public readonly tenancyConfig: TenancyConfig;
```

- *Type:* aws-cdk-lib.aws_lambda.TenancyConfig

The tenancy configuration for this function.

---

##### `currentVersion`<sup>Required</sup> <a name="currentVersion" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.currentVersion"></a>

```typescript
public readonly currentVersion: Version;
```

- *Type:* aws-cdk-lib.aws_lambda.Version

Returns a `lambda.Version` which represents the current version of this Lambda function. A new version will be created every time the function's configuration changes.

You can specify options for this version using the `currentVersionOptions`
prop when initializing the `lambda.Function`.

---

##### `logGroup`<sup>Required</sup> <a name="logGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.logGroup"></a>

```typescript
public readonly logGroup: ILogGroup;
```

- *Type:* aws-cdk-lib.aws_logs.ILogGroup

The LogGroup where the Lambda function's logs are made available.

If either `logRetention` is set or this property is called, a CloudFormation custom resource is added to the stack that
pre-creates the log group as part of the stack deployment, if it already doesn't exist, and sets the correct log retention
period (never expire, by default).

Further, if the log group already exists and the `logRetention` is not set, the custom resource will reset the log retention
to never expire even if it was configured with a different value.

---

##### `runtime`<sup>Required</sup> <a name="runtime" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.runtime"></a>

```typescript
public readonly runtime: Runtime;
```

- *Type:* aws-cdk-lib.aws_lambda.Runtime

The runtime configured for this lambda.

---

##### `deadLetterQueue`<sup>Optional</sup> <a name="deadLetterQueue" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.deadLetterQueue"></a>

```typescript
public readonly deadLetterQueue: IQueue;
```

- *Type:* aws-cdk-lib.aws_sqs.IQueue

The DLQ (as queue) associated with this Lambda Function (this is an optional attribute).

---

##### `deadLetterTopic`<sup>Optional</sup> <a name="deadLetterTopic" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.deadLetterTopic"></a>

```typescript
public readonly deadLetterTopic: ITopic;
```

- *Type:* aws-cdk-lib.aws_sns.ITopic

The DLQ (as topic) associated with this Lambda Function (this is an optional attribute).

---

##### `timeout`<sup>Optional</sup> <a name="timeout" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.timeout"></a>

```typescript
public readonly timeout: Duration;
```

- *Type:* aws-cdk-lib.Duration

The timeout configured for this lambda.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.Function.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### Instance <a name="Instance" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance"></a>

An extension for the Instance construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.Initializer"></a>

```typescript
import { Instance } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new Instance(scope: Construct, id: string, props: InstanceProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_ec2.InstanceProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_ec2.InstanceProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.addSecurityGroup">addSecurityGroup</a></code> | Add the security group to the instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.addToRolePolicy">addToRolePolicy</a></code> | Adds a statement to the IAM role assumed by the instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.addUserData">addUserData</a></code> | Add command to the startup script of the instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.applyCloudFormationInit">applyCloudFormationInit</a></code> | Use a CloudFormation Init configuration at instance startup. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.alarmCpuUtilization">alarmCpuUtilization</a></code> | Creates an alarm that monitors the CPUUtilization for the EC2 instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.alarmStatusCheckFailed">alarmStatusCheckFailed</a></code> | Creates an alarm that monitors the StatusCheckFailed for the EC2 instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the EC2 Instance. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addSecurityGroup` <a name="addSecurityGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.addSecurityGroup"></a>

```typescript
public addSecurityGroup(securityGroup: ISecurityGroup): void
```

Add the security group to the instance.

###### `securityGroup`<sup>Required</sup> <a name="securityGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.addSecurityGroup.parameter.securityGroup"></a>

- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup

: The security group to add.

---

##### `addToRolePolicy` <a name="addToRolePolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.addToRolePolicy"></a>

```typescript
public addToRolePolicy(statement: PolicyStatement): void
```

Adds a statement to the IAM role assumed by the instance.

###### `statement`<sup>Required</sup> <a name="statement" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.addToRolePolicy.parameter.statement"></a>

- *Type:* aws-cdk-lib.aws_iam.PolicyStatement

---

##### `addUserData` <a name="addUserData" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.addUserData"></a>

```typescript
public addUserData(commands: ...string[]): void
```

Add command to the startup script of the instance.

The command must be in the scripting language supported by the instance's OS (i.e. Linux/Windows).

###### `commands`<sup>Required</sup> <a name="commands" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.addUserData.parameter.commands"></a>

- *Type:* ...string[]

---

##### `applyCloudFormationInit` <a name="applyCloudFormationInit" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.applyCloudFormationInit"></a>

```typescript
public applyCloudFormationInit(init: CloudFormationInit, options?: ApplyCloudFormationInitOptions): void
```

Use a CloudFormation Init configuration at instance startup.

This does the following:

- Attaches the CloudFormation Init metadata to the Instance resource.
- Add commands to the instance UserData to run `cfn-init` and `cfn-signal`.
- Update the instance's CreationPolicy to wait for the `cfn-signal` commands.

###### `init`<sup>Required</sup> <a name="init" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.applyCloudFormationInit.parameter.init"></a>

- *Type:* aws-cdk-lib.aws_ec2.CloudFormationInit

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.applyCloudFormationInit.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_ec2.ApplyCloudFormationInitOptions

---

##### `alarmCpuUtilization` <a name="alarmCpuUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.alarmCpuUtilization"></a>

```typescript
public alarmCpuUtilization(props?: Ec2CpuUtilizationAlarmConfig): Ec2InstanceCpuUtilizationAlarm
```

Creates an alarm that monitors the CPUUtilization for the EC2 instance.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.alarmCpuUtilization.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig">Ec2CpuUtilizationAlarmConfig</a>

---

##### `alarmStatusCheckFailed` <a name="alarmStatusCheckFailed" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.alarmStatusCheckFailed"></a>

```typescript
public alarmStatusCheckFailed(props?: Ec2StatusCheckFailedAlarmConfig): Ec2InstanceStatusCheckFailedAlarm
```

Creates an alarm that monitors the StatusCheckFailed for the EC2 instance.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.alarmStatusCheckFailed.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig">Ec2StatusCheckFailedAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props?: Ec2InstanceRecommendedAlarmsConfig): Ec2InstanceRecommendedAlarms
```

Creates the recommended alarms for the EC2 Instance.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EC2](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EC2)

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig">Ec2InstanceRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.isResource">isResource</a></code> | Check whether the given construct is a Resource. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.isConstruct"></a>

```typescript
import { Instance } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Instance.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.isOwnedResource"></a>

```typescript
import { Instance } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Instance.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.isResource"></a>

```typescript
import { Instance } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Instance.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.connections">connections</a></code> | <code>aws-cdk-lib.aws_ec2.Connections</code> | Allows specify security group connections for the instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.grantPrincipal">grantPrincipal</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | The principal to grant permissions to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instance">instance</a></code> | <code>aws-cdk-lib.aws_ec2.CfnInstance</code> | the underlying instance resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instanceAvailabilityZone">instanceAvailabilityZone</a></code> | <code>string</code> | The availability zone the instance was launched in. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instanceId">instanceId</a></code> | <code>string</code> | The instance's ID. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instancePrivateDnsName">instancePrivateDnsName</a></code> | <code>string</code> | Private DNS name for this instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instancePrivateIp">instancePrivateIp</a></code> | <code>string</code> | Private IP for this instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instancePublicDnsName">instancePublicDnsName</a></code> | <code>string</code> | Publicly-routable DNS name for this instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instancePublicIp">instancePublicIp</a></code> | <code>string</code> | Publicly-routable IP  address for this instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instanceRef">instanceRef</a></code> | <code>aws-cdk-lib.interfaces.aws_ec2.InstanceReference</code> | A reference to a Instance resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.osType">osType</a></code> | <code>aws-cdk-lib.aws_ec2.OperatingSystemType</code> | The type of OS the instance is running. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.role">role</a></code> | <code>aws-cdk-lib.aws_iam.IRole</code> | The IAM role assumed by the instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.userData">userData</a></code> | <code>aws-cdk-lib.aws_ec2.UserData</code> | UserData for the instance. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `connections`<sup>Required</sup> <a name="connections" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.connections"></a>

```typescript
public readonly connections: Connections;
```

- *Type:* aws-cdk-lib.aws_ec2.Connections

Allows specify security group connections for the instance.

---

##### `grantPrincipal`<sup>Required</sup> <a name="grantPrincipal" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.grantPrincipal"></a>

```typescript
public readonly grantPrincipal: IPrincipal;
```

- *Type:* aws-cdk-lib.aws_iam.IPrincipal

The principal to grant permissions to.

---

##### `instance`<sup>Required</sup> <a name="instance" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instance"></a>

```typescript
public readonly instance: CfnInstance;
```

- *Type:* aws-cdk-lib.aws_ec2.CfnInstance

the underlying instance resource.

---

##### `instanceAvailabilityZone`<sup>Required</sup> <a name="instanceAvailabilityZone" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instanceAvailabilityZone"></a>

```typescript
public readonly instanceAvailabilityZone: string;
```

- *Type:* string

The availability zone the instance was launched in.

---

##### `instanceId`<sup>Required</sup> <a name="instanceId" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instanceId"></a>

```typescript
public readonly instanceId: string;
```

- *Type:* string

The instance's ID.

---

##### `instancePrivateDnsName`<sup>Required</sup> <a name="instancePrivateDnsName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instancePrivateDnsName"></a>

```typescript
public readonly instancePrivateDnsName: string;
```

- *Type:* string

Private DNS name for this instance.

---

##### `instancePrivateIp`<sup>Required</sup> <a name="instancePrivateIp" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instancePrivateIp"></a>

```typescript
public readonly instancePrivateIp: string;
```

- *Type:* string

Private IP for this instance.

---

##### `instancePublicDnsName`<sup>Required</sup> <a name="instancePublicDnsName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instancePublicDnsName"></a>

```typescript
public readonly instancePublicDnsName: string;
```

- *Type:* string

Publicly-routable DNS name for this instance.

(May be an empty string if the instance does not have a public name).

---

##### `instancePublicIp`<sup>Required</sup> <a name="instancePublicIp" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instancePublicIp"></a>

```typescript
public readonly instancePublicIp: string;
```

- *Type:* string

Publicly-routable IP  address for this instance.

(May be an empty string if the instance does not have a public IP).

---

##### `instanceRef`<sup>Required</sup> <a name="instanceRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.instanceRef"></a>

```typescript
public readonly instanceRef: InstanceReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_ec2.InstanceReference

A reference to a Instance resource.

---

##### `osType`<sup>Required</sup> <a name="osType" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.osType"></a>

```typescript
public readonly osType: OperatingSystemType;
```

- *Type:* aws-cdk-lib.aws_ec2.OperatingSystemType

The type of OS the instance is running.

---

##### `role`<sup>Required</sup> <a name="role" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.role"></a>

```typescript
public readonly role: IRole;
```

- *Type:* aws-cdk-lib.aws_iam.IRole

The IAM role assumed by the instance.

---

##### `userData`<sup>Required</sup> <a name="userData" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.userData"></a>

```typescript
public readonly userData: UserData;
```

- *Type:* aws-cdk-lib.aws_ec2.UserData

UserData for the instance.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.Instance.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### InterfaceVpcEndpoint <a name="InterfaceVpcEndpoint" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint"></a>

An extension for the InterfaceVpcEndpoint construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.Initializer"></a>

```typescript
import { InterfaceVpcEndpoint } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new InterfaceVpcEndpoint(scope: Construct, id: string, props: InterfaceVpcEndpointProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_ec2.InterfaceVpcEndpointProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_ec2.InterfaceVpcEndpointProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.addToPolicy">addToPolicy</a></code> | Adds a statement to the policy document of the VPC endpoint. The statement must have a Principal. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.alarmPacketsDropped">alarmPacketsDropped</a></code> | Creates an alarm that monitors the PacketsDropped for the PrivateLink endpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the PrivateLink InterfaceVpcEndpoint. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addToPolicy` <a name="addToPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.addToPolicy"></a>

```typescript
public addToPolicy(statement: PolicyStatement): void
```

Adds a statement to the policy document of the VPC endpoint. The statement must have a Principal.

Not all interface VPC endpoints support policy. For more information
see https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html

###### `statement`<sup>Required</sup> <a name="statement" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.addToPolicy.parameter.statement"></a>

- *Type:* aws-cdk-lib.aws_iam.PolicyStatement

the IAM statement to add.

---

##### `alarmPacketsDropped` <a name="alarmPacketsDropped" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.alarmPacketsDropped"></a>

```typescript
public alarmPacketsDropped(props: PrivateLinkEndpointsPacketsDroppedAlarmConfig): PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm[]
```

Creates an alarm that monitors the PacketsDropped for the PrivateLink endpoint.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.alarmPacketsDropped.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig">PrivateLinkEndpointsPacketsDroppedAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig): PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms
```

Creates the recommended alarms for the PrivateLink InterfaceVpcEndpoint.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#PrivateLinkEndpoints](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#PrivateLinkEndpoints)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig">PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.fromInterfaceVpcEndpointAttributes">fromInterfaceVpcEndpointAttributes</a></code> | Imports an existing interface VPC endpoint. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.isConstruct"></a>

```typescript
import { InterfaceVpcEndpoint } from '@renovosolutions/cdk-library-cloudwatch-alarms'

InterfaceVpcEndpoint.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.isOwnedResource"></a>

```typescript
import { InterfaceVpcEndpoint } from '@renovosolutions/cdk-library-cloudwatch-alarms'

InterfaceVpcEndpoint.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.isResource"></a>

```typescript
import { InterfaceVpcEndpoint } from '@renovosolutions/cdk-library-cloudwatch-alarms'

InterfaceVpcEndpoint.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromInterfaceVpcEndpointAttributes` <a name="fromInterfaceVpcEndpointAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.fromInterfaceVpcEndpointAttributes"></a>

```typescript
import { InterfaceVpcEndpoint } from '@renovosolutions/cdk-library-cloudwatch-alarms'

InterfaceVpcEndpoint.fromInterfaceVpcEndpointAttributes(scope: Construct, id: string, attrs: InterfaceVpcEndpointAttributes)
```

Imports an existing interface VPC endpoint.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.fromInterfaceVpcEndpointAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.fromInterfaceVpcEndpointAttributes.parameter.id"></a>

- *Type:* string

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.fromInterfaceVpcEndpointAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_ec2.InterfaceVpcEndpointAttributes

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.vpcEndpointId">vpcEndpointId</a></code> | <code>string</code> | The interface VPC endpoint identifier. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.vpcEndpointRef">vpcEndpointRef</a></code> | <code>aws-cdk-lib.interfaces.aws_ec2.VPCEndpointReference</code> | A reference to a VPCEndpoint resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.connections">connections</a></code> | <code>aws-cdk-lib.aws_ec2.Connections</code> | Access to network connections. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.vpcEndpointCreationTimestamp">vpcEndpointCreationTimestamp</a></code> | <code>string</code> | The date and time the interface VPC endpoint was created. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.vpcEndpointDnsEntries">vpcEndpointDnsEntries</a></code> | <code>string[]</code> | The DNS entries for the interface VPC endpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.vpcEndpointNetworkInterfaceIds">vpcEndpointNetworkInterfaceIds</a></code> | <code>string[]</code> | One or more network interfaces for the interface VPC endpoint. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `vpcEndpointId`<sup>Required</sup> <a name="vpcEndpointId" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.vpcEndpointId"></a>

```typescript
public readonly vpcEndpointId: string;
```

- *Type:* string

The interface VPC endpoint identifier.

---

##### `vpcEndpointRef`<sup>Required</sup> <a name="vpcEndpointRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.vpcEndpointRef"></a>

```typescript
public readonly vpcEndpointRef: VPCEndpointReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_ec2.VPCEndpointReference

A reference to a VPCEndpoint resource.

---

##### `connections`<sup>Required</sup> <a name="connections" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.connections"></a>

```typescript
public readonly connections: Connections;
```

- *Type:* aws-cdk-lib.aws_ec2.Connections

Access to network connections.

---

##### `vpcEndpointCreationTimestamp`<sup>Required</sup> <a name="vpcEndpointCreationTimestamp" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.vpcEndpointCreationTimestamp"></a>

```typescript
public readonly vpcEndpointCreationTimestamp: string;
```

- *Type:* string

The date and time the interface VPC endpoint was created.

---

##### `vpcEndpointDnsEntries`<sup>Required</sup> <a name="vpcEndpointDnsEntries" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.vpcEndpointDnsEntries"></a>

```typescript
public readonly vpcEndpointDnsEntries: string[];
```

- *Type:* string[]

The DNS entries for the interface VPC endpoint.

Each entry is a combination of the hosted zone ID and the DNS name.
The entries are ordered as follows: regional public DNS, zonal public DNS, private DNS, and wildcard DNS.
This order is not enforced for AWS Marketplace services.

The following is an example. In the first entry, the hosted zone ID is Z1HUB23UULQXV
and the DNS name is vpce-01abc23456de78f9g-12abccd3.ec2.us-east-1.vpce.amazonaws.com.

["Z1HUB23UULQXV:vpce-01abc23456de78f9g-12abccd3.ec2.us-east-1.vpce.amazonaws.com",
"Z1HUB23UULQXV:vpce-01abc23456de78f9g-12abccd3-us-east-1a.ec2.us-east-1.vpce.amazonaws.com",
"Z1C12344VYDITB0:ec2.us-east-1.amazonaws.com"]

If you update the PrivateDnsEnabled or SubnetIds properties, the DNS entries in the list will change.

---

##### `vpcEndpointNetworkInterfaceIds`<sup>Required</sup> <a name="vpcEndpointNetworkInterfaceIds" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.vpcEndpointNetworkInterfaceIds"></a>

```typescript
public readonly vpcEndpointNetworkInterfaceIds: string[];
```

- *Type:* string[]

One or more network interfaces for the interface VPC endpoint.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.InterfaceVpcEndpoint.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### LambdaConcurrentExecutionsAlarm <a name="LambdaConcurrentExecutionsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm"></a>

This alarm can proactively detect if the concurrency of the function is approaching the Region-level concurrency quota of your account, so that you can act on it.

A function is
throttled if it reaches the Region-level concurrency quota
of the account.

The alarm is triggered when the number of concurrent executions
exceeds the specified threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.Initializer"></a>

```typescript
import { LambdaConcurrentExecutionsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new LambdaConcurrentExecutionsAlarm(scope: Construct, id: string, props: LambdaConcurrentExecutionsAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps">LambdaConcurrentExecutionsAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps">LambdaConcurrentExecutionsAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.isConstruct"></a>

```typescript
import { LambdaConcurrentExecutionsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaConcurrentExecutionsAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.isOwnedResource"></a>

```typescript
import { LambdaConcurrentExecutionsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaConcurrentExecutionsAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.isResource"></a>

```typescript
import { LambdaConcurrentExecutionsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaConcurrentExecutionsAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.fromAlarmArn"></a>

```typescript
import { LambdaConcurrentExecutionsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaConcurrentExecutionsAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.fromAlarmName"></a>

```typescript
import { LambdaConcurrentExecutionsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaConcurrentExecutionsAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### LambdaDurationAlarm <a name="LambdaDurationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm"></a>

This alarm can detect a long running duration of a Lambda function.

High runtime duration indicates that
a function is taking a longer time for invocation, and
can also impact the concurrency capacity of invocation
if Lambda is handling a higher number of events. It is
critical to know if the Lambda function is constantly
taking longer execution time than expected.

The alarm is triggered when the duration of the function
invocations exceeds the specified threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.Initializer"></a>

```typescript
import { LambdaDurationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new LambdaDurationAlarm(scope: Construct, id: string, props: LambdaDurationAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps">LambdaDurationAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps">LambdaDurationAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.isConstruct"></a>

```typescript
import { LambdaDurationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaDurationAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.isOwnedResource"></a>

```typescript
import { LambdaDurationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaDurationAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.isResource"></a>

```typescript
import { LambdaDurationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaDurationAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.fromAlarmArn"></a>

```typescript
import { LambdaDurationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaDurationAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.fromAlarmName"></a>

```typescript
import { LambdaDurationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaDurationAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### LambdaErrorsAlarm <a name="LambdaErrorsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm"></a>

The alarm helps detect high error counts in function invocations.

The alarm is triggered when the number of errors exceeds the specified
threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.Initializer"></a>

```typescript
import { LambdaErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new LambdaErrorsAlarm(scope: Construct, id: string, props: LambdaErrorsAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps">LambdaErrorsAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps">LambdaErrorsAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.isConstruct"></a>

```typescript
import { LambdaErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaErrorsAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.isOwnedResource"></a>

```typescript
import { LambdaErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaErrorsAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.isResource"></a>

```typescript
import { LambdaErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaErrorsAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.fromAlarmArn"></a>

```typescript
import { LambdaErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaErrorsAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.fromAlarmName"></a>

```typescript
import { LambdaErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaErrorsAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### LambdaRecommendedAlarms <a name="LambdaRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms"></a>

A construct that creates recommended alarms for a Lambda function.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#Lambda](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#Lambda)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.Initializer"></a>

```typescript
import { LambdaRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new LambdaRecommendedAlarms(scope: Construct, id: string, props: LambdaRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps">LambdaRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps">LambdaRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.isConstruct"></a>

```typescript
import { LambdaRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.property.alarmConcurrentExecutions">alarmConcurrentExecutions</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm">LambdaConcurrentExecutionsAlarm</a></code> | The concurrent executions alarm for the Lambda function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.property.alarmDuration">alarmDuration</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm">LambdaDurationAlarm</a></code> | The duration alarm for the Lambda function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.property.alarmErrors">alarmErrors</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm">LambdaErrorsAlarm</a></code> | The error alarm for the Lambda function. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.property.alarmThrottles">alarmThrottles</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm">LambdaThrottlesAlarm</a></code> | The throttles alarm for the Lambda function. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmConcurrentExecutions`<sup>Optional</sup> <a name="alarmConcurrentExecutions" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.property.alarmConcurrentExecutions"></a>

```typescript
public readonly alarmConcurrentExecutions: LambdaConcurrentExecutionsAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarm">LambdaConcurrentExecutionsAlarm</a>

The concurrent executions alarm for the Lambda function.

---

##### `alarmDuration`<sup>Optional</sup> <a name="alarmDuration" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.property.alarmDuration"></a>

```typescript
public readonly alarmDuration: LambdaDurationAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarm">LambdaDurationAlarm</a>

The duration alarm for the Lambda function.

---

##### `alarmErrors`<sup>Optional</sup> <a name="alarmErrors" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.property.alarmErrors"></a>

```typescript
public readonly alarmErrors: LambdaErrorsAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarm">LambdaErrorsAlarm</a>

The error alarm for the Lambda function.

---

##### `alarmThrottles`<sup>Optional</sup> <a name="alarmThrottles" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarms.property.alarmThrottles"></a>

```typescript
public readonly alarmThrottles: LambdaThrottlesAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm">LambdaThrottlesAlarm</a>

The throttles alarm for the Lambda function.

---


### LambdaThrottlesAlarm <a name="LambdaThrottlesAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm"></a>

The alarm helps detect a high number of throttled invocation requests for a Lambda function.

It is important to know if requests are constantly
getting rejected due to throttling and if you need to improve Lambda
function performance or increase concurrency capacity to avoid constant
throttling.

The alarm is triggered when the number of throttles exceeds or equals
the specified threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.Initializer"></a>

```typescript
import { LambdaThrottlesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new LambdaThrottlesAlarm(scope: Construct, id: string, props: LambdaThrottlesAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps">LambdaThrottlesAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps">LambdaThrottlesAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.isConstruct"></a>

```typescript
import { LambdaThrottlesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaThrottlesAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.isOwnedResource"></a>

```typescript
import { LambdaThrottlesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaThrottlesAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.isResource"></a>

```typescript
import { LambdaThrottlesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaThrottlesAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.fromAlarmArn"></a>

```typescript
import { LambdaThrottlesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaThrottlesAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.fromAlarmName"></a>

```typescript
import { LambdaThrottlesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

LambdaThrottlesAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### NetworkLoadBalancer <a name="NetworkLoadBalancer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer"></a>

An extension for the NetworkLoadBalancer construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.Initializer"></a>

```typescript
import { NetworkLoadBalancer } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new NetworkLoadBalancer(scope: Construct, id: string, props: NetworkLoadBalancerProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.NetworkLoadBalancerProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.NetworkLoadBalancerProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.logAccessLogs">logAccessLogs</a></code> | Enable access logging for this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.removeAttribute">removeAttribute</a></code> | Remove an attribute from the load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.setAttribute">setAttribute</a></code> | Set a non-standard attribute on the load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.addListener">addListener</a></code> | Add a listener to this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.addSecurityGroup">addSecurityGroup</a></code> | Add a security group to this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metric">metric</a></code> | Return the given named metric for this Network Load Balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricActiveFlowCount">metricActiveFlowCount</a></code> | The total number of concurrent TCP flows (or connections) from clients to targets. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricConsumedLCUs">metricConsumedLCUs</a></code> | The number of load balancer capacity units (LCU) used by your load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricNewFlowCount">metricNewFlowCount</a></code> | The total number of new TCP flows (or connections) established from clients to targets in the time period. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricProcessedBytes">metricProcessedBytes</a></code> | The total number of bytes processed by the load balancer, including TCP/IP headers. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricTcpClientResetCount">metricTcpClientResetCount</a></code> | The total number of reset (RST) packets sent from a client to a target. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricTcpElbResetCount">metricTcpElbResetCount</a></code> | The total number of reset (RST) packets generated by the load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricTcpTargetResetCount">metricTcpTargetResetCount</a></code> | The total number of reset (RST) packets sent from a target to a client. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.alarmTcpElbResetCount">alarmTcpElbResetCount</a></code> | Creates an alarm that monitors the TCP reset count from the load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.alarmTcpTargetResetCount">alarmTcpTargetResetCount</a></code> | Creates an alarm that monitors the TCP reset count from targets. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the NetworkLoadBalancer. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `logAccessLogs` <a name="logAccessLogs" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.logAccessLogs"></a>

```typescript
public logAccessLogs(bucket: IBucket, prefix?: string): void
```

Enable access logging for this load balancer.

A region must be specified on the stack containing the load balancer; you cannot enable logging on
environment-agnostic stacks. See https://docs.aws.amazon.com/cdk/latest/guide/environments.html

###### `bucket`<sup>Required</sup> <a name="bucket" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.logAccessLogs.parameter.bucket"></a>

- *Type:* aws-cdk-lib.aws_s3.IBucket

---

###### `prefix`<sup>Optional</sup> <a name="prefix" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.logAccessLogs.parameter.prefix"></a>

- *Type:* string

---

##### `removeAttribute` <a name="removeAttribute" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.removeAttribute"></a>

```typescript
public removeAttribute(key: string): void
```

Remove an attribute from the load balancer.

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.removeAttribute.parameter.key"></a>

- *Type:* string

---

##### `setAttribute` <a name="setAttribute" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.setAttribute"></a>

```typescript
public setAttribute(key: string, value?: string): void
```

Set a non-standard attribute on the load balancer.

> [https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#load-balancer-attributes](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#load-balancer-attributes)

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.setAttribute.parameter.key"></a>

- *Type:* string

---

###### `value`<sup>Optional</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.setAttribute.parameter.value"></a>

- *Type:* string

---

##### `addListener` <a name="addListener" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.addListener"></a>

```typescript
public addListener(id: string, props: BaseNetworkListenerProps): NetworkListener
```

Add a listener to this load balancer.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.addListener.parameter.id"></a>

- *Type:* string

---

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.addListener.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.BaseNetworkListenerProps

---

##### `addSecurityGroup` <a name="addSecurityGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.addSecurityGroup"></a>

```typescript
public addSecurityGroup(securityGroup: ISecurityGroup): void
```

Add a security group to this load balancer.

###### `securityGroup`<sup>Required</sup> <a name="securityGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.addSecurityGroup.parameter.securityGroup"></a>

- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup

---

##### ~~`metric`~~ <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metric"></a>

```typescript
public metric(metricName: string, props?: MetricOptions): Metric
```

Return the given named metric for this Network Load Balancer.

###### `metricName`<sup>Required</sup> <a name="metricName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metric.parameter.metricName"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metric.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricActiveFlowCount`~~ <a name="metricActiveFlowCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricActiveFlowCount"></a>

```typescript
public metricActiveFlowCount(props?: MetricOptions): Metric
```

The total number of concurrent TCP flows (or connections) from clients to targets.

This metric includes connections in the SYN_SENT and ESTABLISHED states.
TCP connections are not terminated at the load balancer, so a client
opening a TCP connection to a target counts as a single flow.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricActiveFlowCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricConsumedLCUs`~~ <a name="metricConsumedLCUs" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricConsumedLCUs"></a>

```typescript
public metricConsumedLCUs(props?: MetricOptions): Metric
```

The number of load balancer capacity units (LCU) used by your load balancer.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricConsumedLCUs.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricNewFlowCount`~~ <a name="metricNewFlowCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricNewFlowCount"></a>

```typescript
public metricNewFlowCount(props?: MetricOptions): Metric
```

The total number of new TCP flows (or connections) established from clients to targets in the time period.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricNewFlowCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricProcessedBytes`~~ <a name="metricProcessedBytes" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricProcessedBytes"></a>

```typescript
public metricProcessedBytes(props?: MetricOptions): Metric
```

The total number of bytes processed by the load balancer, including TCP/IP headers.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricProcessedBytes.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricTcpClientResetCount`~~ <a name="metricTcpClientResetCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricTcpClientResetCount"></a>

```typescript
public metricTcpClientResetCount(props?: MetricOptions): Metric
```

The total number of reset (RST) packets sent from a client to a target.

These resets are generated by the client and forwarded by the load balancer.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricTcpClientResetCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricTcpElbResetCount`~~ <a name="metricTcpElbResetCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricTcpElbResetCount"></a>

```typescript
public metricTcpElbResetCount(props?: MetricOptions): Metric
```

The total number of reset (RST) packets generated by the load balancer.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricTcpElbResetCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricTcpTargetResetCount`~~ <a name="metricTcpTargetResetCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricTcpTargetResetCount"></a>

```typescript
public metricTcpTargetResetCount(props?: MetricOptions): Metric
```

The total number of reset (RST) packets sent from a target to a client.

These resets are generated by the target and forwarded by the load balancer.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.metricTcpTargetResetCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `alarmTcpElbResetCount` <a name="alarmTcpElbResetCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.alarmTcpElbResetCount"></a>

```typescript
public alarmTcpElbResetCount(props?: NetworkLoadBalancerTcpElbResetCountAlarmConfig): NetworkLoadBalancerTcpElbResetCountAlarm
```

Creates an alarm that monitors the TCP reset count from the load balancer.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.alarmTcpElbResetCount.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig">NetworkLoadBalancerTcpElbResetCountAlarmConfig</a>

---

##### `alarmTcpTargetResetCount` <a name="alarmTcpTargetResetCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.alarmTcpTargetResetCount"></a>

```typescript
public alarmTcpTargetResetCount(props?: NetworkLoadBalancerTcpTargetResetCountAlarmConfig): NetworkLoadBalancerTcpTargetResetCountAlarm
```

Creates an alarm that monitors the TCP reset count from targets.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.alarmTcpTargetResetCount.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig">NetworkLoadBalancerTcpTargetResetCountAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: NetworkLoadBalancerRecommendedAlarmsConfig): NetworkLoadBalancerRecommendedAlarms
```

Creates the recommended alarms for the NetworkLoadBalancer.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig">NetworkLoadBalancerRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.fromLookup">fromLookup</a></code> | Looks up the network load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.fromNetworkLoadBalancerAttributes">fromNetworkLoadBalancerAttributes</a></code> | *No description.* |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.isConstruct"></a>

```typescript
import { NetworkLoadBalancer } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancer.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.isOwnedResource"></a>

```typescript
import { NetworkLoadBalancer } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancer.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.isResource"></a>

```typescript
import { NetworkLoadBalancer } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancer.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromLookup` <a name="fromLookup" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.fromLookup"></a>

```typescript
import { NetworkLoadBalancer } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancer.fromLookup(scope: Construct, id: string, options: NetworkLoadBalancerLookupOptions)
```

Looks up the network load balancer.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.fromLookup.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.fromLookup.parameter.id"></a>

- *Type:* string

---

###### `options`<sup>Required</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.fromLookup.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.NetworkLoadBalancerLookupOptions

---

##### `fromNetworkLoadBalancerAttributes` <a name="fromNetworkLoadBalancerAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.fromNetworkLoadBalancerAttributes"></a>

```typescript
import { NetworkLoadBalancer } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancer.fromNetworkLoadBalancerAttributes(scope: Construct, id: string, attrs: NetworkLoadBalancerAttributes)
```

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.fromNetworkLoadBalancerAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.fromNetworkLoadBalancerAttributes.parameter.id"></a>

- *Type:* string

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.fromNetworkLoadBalancerAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.NetworkLoadBalancerAttributes

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.loadBalancerArn">loadBalancerArn</a></code> | <code>string</code> | The ARN of this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.loadBalancerCanonicalHostedZoneId">loadBalancerCanonicalHostedZoneId</a></code> | <code>string</code> | The canonical hosted zone ID of this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.loadBalancerDnsName">loadBalancerDnsName</a></code> | <code>string</code> | The DNS name of this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.loadBalancerFullName">loadBalancerFullName</a></code> | <code>string</code> | The full name of this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.loadBalancerName">loadBalancerName</a></code> | <code>string</code> | The name of this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.loadBalancerRef">loadBalancerRef</a></code> | <code>aws-cdk-lib.interfaces.aws_elasticloadbalancingv2.LoadBalancerReference</code> | A reference to this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.loadBalancerSecurityGroups">loadBalancerSecurityGroups</a></code> | <code>string[]</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | The VPC this load balancer has been created in. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.connections">connections</a></code> | <code>aws-cdk-lib.aws_ec2.Connections</code> | The network connections associated with this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.metrics">metrics</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.INetworkLoadBalancerMetrics</code> | All metrics available for this load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic">enforceSecurityGroupInboundRulesOnPrivateLinkTraffic</a></code> | <code>string</code> | Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through AWS PrivateLink. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.ipAddressType">ipAddressType</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.IpAddressType</code> | The type of IP addresses to use. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.securityGroups">securityGroups</a></code> | <code>string[]</code> | After the implementation of `IConnectable` (see https://github.com/aws/aws-cdk/pull/28494), the default value for `securityGroups` is set by the `ec2.Connections` constructor to an empty array. To keep backward compatibility (`securityGroups` is `undefined` if the related property is not specified) a getter has been added. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `loadBalancerArn`<sup>Required</sup> <a name="loadBalancerArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.loadBalancerArn"></a>

```typescript
public readonly loadBalancerArn: string;
```

- *Type:* string

The ARN of this load balancer.

Example value: `arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-internal-load-balancer/50dc6c495c0c9188`

---

##### `loadBalancerCanonicalHostedZoneId`<sup>Required</sup> <a name="loadBalancerCanonicalHostedZoneId" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.loadBalancerCanonicalHostedZoneId"></a>

```typescript
public readonly loadBalancerCanonicalHostedZoneId: string;
```

- *Type:* string

The canonical hosted zone ID of this load balancer.

Example value: `Z2P70J7EXAMPLE`

---

##### `loadBalancerDnsName`<sup>Required</sup> <a name="loadBalancerDnsName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.loadBalancerDnsName"></a>

```typescript
public readonly loadBalancerDnsName: string;
```

- *Type:* string

The DNS name of this load balancer.

Example value: `my-load-balancer-424835706.us-west-2.elb.amazonaws.com`

---

##### `loadBalancerFullName`<sup>Required</sup> <a name="loadBalancerFullName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.loadBalancerFullName"></a>

```typescript
public readonly loadBalancerFullName: string;
```

- *Type:* string

The full name of this load balancer.

Example value: `app/my-load-balancer/50dc6c495c0c9188`

---

##### `loadBalancerName`<sup>Required</sup> <a name="loadBalancerName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.loadBalancerName"></a>

```typescript
public readonly loadBalancerName: string;
```

- *Type:* string

The name of this load balancer.

Example value: `my-load-balancer`

---

##### `loadBalancerRef`<sup>Required</sup> <a name="loadBalancerRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.loadBalancerRef"></a>

```typescript
public readonly loadBalancerRef: LoadBalancerReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_elasticloadbalancingv2.LoadBalancerReference

A reference to this load balancer.

---

##### `loadBalancerSecurityGroups`<sup>Required</sup> <a name="loadBalancerSecurityGroups" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.loadBalancerSecurityGroups"></a>

```typescript
public readonly loadBalancerSecurityGroups: string[];
```

- *Type:* string[]

---

##### `vpc`<sup>Optional</sup> <a name="vpc" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.vpc"></a>

```typescript
public readonly vpc: IVpc;
```

- *Type:* aws-cdk-lib.aws_ec2.IVpc

The VPC this load balancer has been created in.

This property is always defined (not `null` or `undefined`) for sub-classes of `BaseLoadBalancer`.

---

##### `connections`<sup>Required</sup> <a name="connections" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.connections"></a>

```typescript
public readonly connections: Connections;
```

- *Type:* aws-cdk-lib.aws_ec2.Connections

The network connections associated with this resource.

---

##### `metrics`<sup>Required</sup> <a name="metrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.metrics"></a>

```typescript
public readonly metrics: INetworkLoadBalancerMetrics;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.INetworkLoadBalancerMetrics

All metrics available for this load balancer.

---

##### `enforceSecurityGroupInboundRulesOnPrivateLinkTraffic`<sup>Optional</sup> <a name="enforceSecurityGroupInboundRulesOnPrivateLinkTraffic" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"></a>

```typescript
public readonly enforceSecurityGroupInboundRulesOnPrivateLinkTraffic: string;
```

- *Type:* string

Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through AWS PrivateLink.

---

##### `ipAddressType`<sup>Optional</sup> <a name="ipAddressType" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.ipAddressType"></a>

```typescript
public readonly ipAddressType: IpAddressType;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.IpAddressType

The type of IP addresses to use.

---

##### `securityGroups`<sup>Optional</sup> <a name="securityGroups" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.securityGroups"></a>

```typescript
public readonly securityGroups: string[];
```

- *Type:* string[]

After the implementation of `IConnectable` (see https://github.com/aws/aws-cdk/pull/28494), the default value for `securityGroups` is set by the `ec2.Connections` constructor to an empty array. To keep backward compatibility (`securityGroups` is `undefined` if the related property is not specified) a getter has been added.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancer.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### NetworkLoadBalancerRecommendedAlarms <a name="NetworkLoadBalancerRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms"></a>

A construct that creates the recommended alarms for a NetworkLoadBalancer.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.Initializer"></a>

```typescript
import { NetworkLoadBalancerRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new NetworkLoadBalancerRecommendedAlarms(scope: Construct, id: string, props: NetworkLoadBalancerRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps">NetworkLoadBalancerRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps">NetworkLoadBalancerRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.isConstruct"></a>

```typescript
import { NetworkLoadBalancerRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancerRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.property.alarmTcpElbResetCount">alarmTcpElbResetCount</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm">NetworkLoadBalancerTcpElbResetCountAlarm</a></code> | The TcpElbResetCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.property.alarmTcpTargetResetCount">alarmTcpTargetResetCount</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm">NetworkLoadBalancerTcpTargetResetCountAlarm</a></code> | The TcpTargetResetCount alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmTcpElbResetCount`<sup>Optional</sup> <a name="alarmTcpElbResetCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.property.alarmTcpElbResetCount"></a>

```typescript
public readonly alarmTcpElbResetCount: NetworkLoadBalancerTcpElbResetCountAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm">NetworkLoadBalancerTcpElbResetCountAlarm</a>

The TcpElbResetCount alarm.

---

##### `alarmTcpTargetResetCount`<sup>Optional</sup> <a name="alarmTcpTargetResetCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarms.property.alarmTcpTargetResetCount"></a>

```typescript
public readonly alarmTcpTargetResetCount: NetworkLoadBalancerTcpTargetResetCountAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm">NetworkLoadBalancerTcpTargetResetCountAlarm</a>

The TcpTargetResetCount alarm.

---


### NetworkLoadBalancerTcpElbResetCountAlarm <a name="NetworkLoadBalancerTcpElbResetCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm"></a>

This alarm is used to detect when the load balancer is sending TCP reset packets.

A high number of resets can indicate connectivity issues between the load balancer and clients.

The alarm is triggered when the number of TCP resets from the load balancer is greater than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.Initializer"></a>

```typescript
import { NetworkLoadBalancerTcpElbResetCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new NetworkLoadBalancerTcpElbResetCountAlarm(scope: IConstruct, id: string, props: NetworkLoadBalancerTcpElbResetCountAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps">NetworkLoadBalancerTcpElbResetCountAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps">NetworkLoadBalancerTcpElbResetCountAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.isConstruct"></a>

```typescript
import { NetworkLoadBalancerTcpElbResetCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancerTcpElbResetCountAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.isOwnedResource"></a>

```typescript
import { NetworkLoadBalancerTcpElbResetCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancerTcpElbResetCountAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.isResource"></a>

```typescript
import { NetworkLoadBalancerTcpElbResetCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancerTcpElbResetCountAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.fromAlarmArn"></a>

```typescript
import { NetworkLoadBalancerTcpElbResetCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancerTcpElbResetCountAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.fromAlarmName"></a>

```typescript
import { NetworkLoadBalancerTcpElbResetCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancerTcpElbResetCountAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### NetworkLoadBalancerTcpTargetResetCountAlarm <a name="NetworkLoadBalancerTcpTargetResetCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm"></a>

This alarm is used to detect when the targets are sending TCP reset packets.

A high number of resets can indicate connectivity issues between the load balancer and targets.

The alarm is triggered when the number of TCP resets from targets is greater than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.Initializer"></a>

```typescript
import { NetworkLoadBalancerTcpTargetResetCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new NetworkLoadBalancerTcpTargetResetCountAlarm(scope: IConstruct, id: string, props: NetworkLoadBalancerTcpTargetResetCountAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps">NetworkLoadBalancerTcpTargetResetCountAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps">NetworkLoadBalancerTcpTargetResetCountAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.isConstruct"></a>

```typescript
import { NetworkLoadBalancerTcpTargetResetCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancerTcpTargetResetCountAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.isOwnedResource"></a>

```typescript
import { NetworkLoadBalancerTcpTargetResetCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancerTcpTargetResetCountAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.isResource"></a>

```typescript
import { NetworkLoadBalancerTcpTargetResetCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancerTcpTargetResetCountAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.fromAlarmArn"></a>

```typescript
import { NetworkLoadBalancerTcpTargetResetCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancerTcpTargetResetCountAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.fromAlarmName"></a>

```typescript
import { NetworkLoadBalancerTcpTargetResetCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkLoadBalancerTcpTargetResetCountAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### NetworkTargetGroup <a name="NetworkTargetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup"></a>

An extension for the NetworkTargetGroup construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.Initializer"></a>

```typescript
import { NetworkTargetGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new NetworkTargetGroup(scope: Construct, id: string, props: NetworkTargetGroupProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.NetworkTargetGroupProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.NetworkTargetGroupProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.configureHealthCheck">configureHealthCheck</a></code> | Set/replace the target group's health check. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.setAttribute">setAttribute</a></code> | Set a non-standard attribute on the target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.addTarget">addTarget</a></code> | Add a load balancing target to this target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.metricHealthyHostCount">metricHealthyHostCount</a></code> | The number of targets that are considered healthy. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.metricUnHealthyHostCount">metricUnHealthyHostCount</a></code> | The number of targets that are considered unhealthy. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.registerListener">registerListener</a></code> | Register a listener that is load balancing to this target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.alarmHealthyHostCount">alarmHealthyHostCount</a></code> | Creates an alarm that monitors the healthy host count for the NetworkTargetGroup. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.alarmUnHealthyHostCount">alarmUnHealthyHostCount</a></code> | Creates an alarm that monitors the unhealthy host count for the NetworkTargetGroup. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the NetworkTargetGroup. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

##### `configureHealthCheck` <a name="configureHealthCheck" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.configureHealthCheck"></a>

```typescript
public configureHealthCheck(healthCheck: HealthCheck): void
```

Set/replace the target group's health check.

###### `healthCheck`<sup>Required</sup> <a name="healthCheck" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.configureHealthCheck.parameter.healthCheck"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.HealthCheck

---

##### `setAttribute` <a name="setAttribute" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.setAttribute"></a>

```typescript
public setAttribute(key: string, value?: string): void
```

Set a non-standard attribute on the target group.

> [https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes)

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.setAttribute.parameter.key"></a>

- *Type:* string

---

###### `value`<sup>Optional</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.setAttribute.parameter.value"></a>

- *Type:* string

---

##### `addTarget` <a name="addTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.addTarget"></a>

```typescript
public addTarget(targets: ...INetworkLoadBalancerTarget[]): void
```

Add a load balancing target to this target group.

###### `targets`<sup>Required</sup> <a name="targets" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.addTarget.parameter.targets"></a>

- *Type:* ...aws-cdk-lib.aws_elasticloadbalancingv2.INetworkLoadBalancerTarget[]

---

##### ~~`metricHealthyHostCount`~~ <a name="metricHealthyHostCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.metricHealthyHostCount"></a>

```typescript
public metricHealthyHostCount(props?: MetricOptions): Metric
```

The number of targets that are considered healthy.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.metricHealthyHostCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricUnHealthyHostCount`~~ <a name="metricUnHealthyHostCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.metricUnHealthyHostCount"></a>

```typescript
public metricUnHealthyHostCount(props?: MetricOptions): Metric
```

The number of targets that are considered unhealthy.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.metricUnHealthyHostCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `registerListener` <a name="registerListener" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.registerListener"></a>

```typescript
public registerListener(listener: INetworkListenerRef): void
```

Register a listener that is load balancing to this target group.

Don't call this directly. It will be called by listeners.

###### `listener`<sup>Required</sup> <a name="listener" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.registerListener.parameter.listener"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.INetworkListenerRef

---

##### `alarmHealthyHostCount` <a name="alarmHealthyHostCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.alarmHealthyHostCount"></a>

```typescript
public alarmHealthyHostCount(props?: NetworkTargetGroupHealthyHostCountAlarmConfig): NetworkTargetGroupHealthyHostCountAlarm
```

Creates an alarm that monitors the healthy host count for the NetworkTargetGroup.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.alarmHealthyHostCount.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig">NetworkTargetGroupHealthyHostCountAlarmConfig</a>

---

##### `alarmUnHealthyHostCount` <a name="alarmUnHealthyHostCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.alarmUnHealthyHostCount"></a>

```typescript
public alarmUnHealthyHostCount(props?: NetworkTargetGroupUnHealthyHostCountAlarmConfig): NetworkTargetGroupUnHealthyHostCountAlarm
```

Creates an alarm that monitors the unhealthy host count for the NetworkTargetGroup.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.alarmUnHealthyHostCount.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig">NetworkTargetGroupUnHealthyHostCountAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: NetworkTargetGroupRecommendedAlarmsConfig): NetworkTargetGroupRecommendedAlarms
```

Creates the recommended alarms for the NetworkTargetGroup.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig">NetworkTargetGroupRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.fromTargetGroupAttributes">fromTargetGroupAttributes</a></code> | Import an existing target group. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.isConstruct"></a>

```typescript
import { NetworkTargetGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkTargetGroup.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `fromTargetGroupAttributes` <a name="fromTargetGroupAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.fromTargetGroupAttributes"></a>

```typescript
import { NetworkTargetGroup } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkTargetGroup.fromTargetGroupAttributes(scope: Construct, id: string, attrs: TargetGroupAttributes)
```

Import an existing target group.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.fromTargetGroupAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.fromTargetGroupAttributes.parameter.id"></a>

- *Type:* string

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.fromTargetGroupAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.TargetGroupAttributes

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.firstLoadBalancerFullName">firstLoadBalancerFullName</a></code> | <code>string</code> | Full name of first load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.loadBalancerArns">loadBalancerArns</a></code> | <code>string</code> | A token representing a list of ARNs of the load balancers that route traffic to this target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.loadBalancerAttached">loadBalancerAttached</a></code> | <code>constructs.IDependable</code> | List of constructs that need to be depended on to ensure the TargetGroup is associated to a load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.targetGroupArn">targetGroupArn</a></code> | <code>string</code> | The ARN of the target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.targetGroupFullName">targetGroupFullName</a></code> | <code>string</code> | The full name of the target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.targetGroupLoadBalancerArns">targetGroupLoadBalancerArns</a></code> | <code>string[]</code> | ARNs of load balancers load balancing to this TargetGroup. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.targetGroupName">targetGroupName</a></code> | <code>string</code> | The name of the target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.targetGroupRef">targetGroupRef</a></code> | <code>aws-cdk-lib.interfaces.aws_elasticloadbalancingv2.TargetGroupReference</code> | A reference to this target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.healthCheck">healthCheck</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.HealthCheck</code> | Health check for the members of this target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.isNetworkTargetGroup">isNetworkTargetGroup</a></code> | <code>boolean</code> | Indicates that this is a Network Target Group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.metrics">metrics</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.INetworkTargetGroupMetrics</code> | All metrics available for this target group. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

---

##### `firstLoadBalancerFullName`<sup>Required</sup> <a name="firstLoadBalancerFullName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.firstLoadBalancerFullName"></a>

```typescript
public readonly firstLoadBalancerFullName: string;
```

- *Type:* string

Full name of first load balancer.

---

##### `loadBalancerArns`<sup>Required</sup> <a name="loadBalancerArns" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.loadBalancerArns"></a>

```typescript
public readonly loadBalancerArns: string;
```

- *Type:* string

A token representing a list of ARNs of the load balancers that route traffic to this target group.

---

##### `loadBalancerAttached`<sup>Required</sup> <a name="loadBalancerAttached" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.loadBalancerAttached"></a>

```typescript
public readonly loadBalancerAttached: IDependable;
```

- *Type:* constructs.IDependable

List of constructs that need to be depended on to ensure the TargetGroup is associated to a load balancer.

---

##### `targetGroupArn`<sup>Required</sup> <a name="targetGroupArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.targetGroupArn"></a>

```typescript
public readonly targetGroupArn: string;
```

- *Type:* string

The ARN of the target group.

---

##### `targetGroupFullName`<sup>Required</sup> <a name="targetGroupFullName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.targetGroupFullName"></a>

```typescript
public readonly targetGroupFullName: string;
```

- *Type:* string

The full name of the target group.

---

##### `targetGroupLoadBalancerArns`<sup>Required</sup> <a name="targetGroupLoadBalancerArns" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.targetGroupLoadBalancerArns"></a>

```typescript
public readonly targetGroupLoadBalancerArns: string[];
```

- *Type:* string[]

ARNs of load balancers load balancing to this TargetGroup.

---

##### `targetGroupName`<sup>Required</sup> <a name="targetGroupName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.targetGroupName"></a>

```typescript
public readonly targetGroupName: string;
```

- *Type:* string

The name of the target group.

---

##### `targetGroupRef`<sup>Required</sup> <a name="targetGroupRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.targetGroupRef"></a>

```typescript
public readonly targetGroupRef: TargetGroupReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_elasticloadbalancingv2.TargetGroupReference

A reference to this target group.

---

##### `healthCheck`<sup>Required</sup> <a name="healthCheck" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.healthCheck"></a>

```typescript
public readonly healthCheck: HealthCheck;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.HealthCheck

Health check for the members of this target group.

---

##### `isNetworkTargetGroup`<sup>Required</sup> <a name="isNetworkTargetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.isNetworkTargetGroup"></a>

```typescript
public readonly isNetworkTargetGroup: boolean;
```

- *Type:* boolean

Indicates that this is a Network Target Group.

Will always return true, but is necessary to prevent accidental structural
equality in TypeScript.

---

##### `metrics`<sup>Required</sup> <a name="metrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.metrics"></a>

```typescript
public readonly metrics: INetworkTargetGroupMetrics;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.INetworkTargetGroupMetrics

All metrics available for this target group.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroup.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### NetworkTargetGroupHealthyHostCountAlarm <a name="NetworkTargetGroupHealthyHostCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm"></a>

This alarm is used to detect when the number of healthy hosts in the target group falls below the threshold.

A low number of healthy hosts can indicate service availability issues.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.Initializer"></a>

```typescript
import { NetworkTargetGroupHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new NetworkTargetGroupHealthyHostCountAlarm(scope: IConstruct, id: string, props: NetworkTargetGroupHealthyHostCountAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps">NetworkTargetGroupHealthyHostCountAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps">NetworkTargetGroupHealthyHostCountAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.isConstruct"></a>

```typescript
import { NetworkTargetGroupHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkTargetGroupHealthyHostCountAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.isOwnedResource"></a>

```typescript
import { NetworkTargetGroupHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkTargetGroupHealthyHostCountAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.isResource"></a>

```typescript
import { NetworkTargetGroupHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkTargetGroupHealthyHostCountAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.fromAlarmArn"></a>

```typescript
import { NetworkTargetGroupHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkTargetGroupHealthyHostCountAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.fromAlarmName"></a>

```typescript
import { NetworkTargetGroupHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkTargetGroupHealthyHostCountAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### NetworkTargetGroupRecommendedAlarms <a name="NetworkTargetGroupRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms"></a>

A construct that creates the recommended alarms for a NetworkTargetGroup.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.Initializer"></a>

```typescript
import { NetworkTargetGroupRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new NetworkTargetGroupRecommendedAlarms(scope: Construct, id: string, props: NetworkTargetGroupRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps">NetworkTargetGroupRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps">NetworkTargetGroupRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.isConstruct"></a>

```typescript
import { NetworkTargetGroupRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkTargetGroupRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.property.alarmHealthyHostCount">alarmHealthyHostCount</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm">NetworkTargetGroupHealthyHostCountAlarm</a></code> | The HealthyHostCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.property.alarmUnHealthyHostCount">alarmUnHealthyHostCount</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm">NetworkTargetGroupUnHealthyHostCountAlarm</a></code> | The UnHealthyHostCount alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmHealthyHostCount`<sup>Optional</sup> <a name="alarmHealthyHostCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.property.alarmHealthyHostCount"></a>

```typescript
public readonly alarmHealthyHostCount: NetworkTargetGroupHealthyHostCountAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarm">NetworkTargetGroupHealthyHostCountAlarm</a>

The HealthyHostCount alarm.

---

##### `alarmUnHealthyHostCount`<sup>Optional</sup> <a name="alarmUnHealthyHostCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarms.property.alarmUnHealthyHostCount"></a>

```typescript
public readonly alarmUnHealthyHostCount: NetworkTargetGroupUnHealthyHostCountAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm">NetworkTargetGroupUnHealthyHostCountAlarm</a>

The UnHealthyHostCount alarm.

---


### NetworkTargetGroupUnHealthyHostCountAlarm <a name="NetworkTargetGroupUnHealthyHostCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm"></a>

This alarm is used to detect when the number of unhealthy hosts in the target group exceeds the threshold.

A high number of unhealthy hosts can indicate service health issues.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.Initializer"></a>

```typescript
import { NetworkTargetGroupUnHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new NetworkTargetGroupUnHealthyHostCountAlarm(scope: IConstruct, id: string, props: NetworkTargetGroupUnHealthyHostCountAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps">NetworkTargetGroupUnHealthyHostCountAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps">NetworkTargetGroupUnHealthyHostCountAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.isConstruct"></a>

```typescript
import { NetworkTargetGroupUnHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkTargetGroupUnHealthyHostCountAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.isOwnedResource"></a>

```typescript
import { NetworkTargetGroupUnHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkTargetGroupUnHealthyHostCountAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.isResource"></a>

```typescript
import { NetworkTargetGroupUnHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkTargetGroupUnHealthyHostCountAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.fromAlarmArn"></a>

```typescript
import { NetworkTargetGroupUnHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkTargetGroupUnHealthyHostCountAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.fromAlarmName"></a>

```typescript
import { NetworkTargetGroupUnHealthyHostCountAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

NetworkTargetGroupUnHealthyHostCountAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm <a name="PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm"></a>

This alarm helps to detect if the endpoint or endpoint service is unhealthy by monitoring the number of packets dropped by the endpoint.

Note that packets larger than 8500 bytes that arrive at the VPC endpoint are dropped. For troubleshooting,
see connectivity problems between an interface VPC endpoint and an endpoint service.

The alarm is triggered when the number of packets dropped exceeds the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.Initializer"></a>

```typescript
import { PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm(scope: IConstruct, id: string, props: PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps">PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps">PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.isConstruct"></a>

```typescript
import { PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.isOwnedResource"></a>

```typescript
import { PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.isResource"></a>

```typescript
import { PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.fromAlarmArn"></a>

```typescript
import { PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.fromAlarmName"></a>

```typescript
import { PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms <a name="PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms"></a>

A construct that creates the recommended alarms for an PrivateLink InterfaceVpcEndpoint.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#PrivateLinkEndpoints](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#PrivateLinkEndpoints)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.Initializer"></a>

```typescript
import { PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms(scope: Construct, id: string, props: PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps">PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps">PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.isConstruct"></a>

```typescript
import { PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.property.alarmPacketsDroppedList">alarmPacketsDroppedList</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm">PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm</a>[]</code> | The PacketsDropped alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmPacketsDroppedList`<sup>Optional</sup> <a name="alarmPacketsDroppedList" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms.property.alarmPacketsDroppedList"></a>

```typescript
public readonly alarmPacketsDroppedList: PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm">PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm</a>[]

The PacketsDropped alarm.

---


### PrivateLinkServicesVpcEndpointServiceRecommendedAlarms <a name="PrivateLinkServicesVpcEndpointServiceRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms"></a>

A construct that creates the recommended alarms for an PrivateLink VpcEndpointService.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#PrivateLinkServices](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#PrivateLinkServices)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.Initializer"></a>

```typescript
import { PrivateLinkServicesVpcEndpointServiceRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new PrivateLinkServicesVpcEndpointServiceRecommendedAlarms(scope: Construct, id: string, props: PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps">PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps">PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.isConstruct"></a>

```typescript
import { PrivateLinkServicesVpcEndpointServiceRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.property.alarmRstPacketsSentList">alarmRstPacketsSentList</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm">PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm</a>[]</code> | The RstPacketsSent alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmRstPacketsSentList`<sup>Optional</sup> <a name="alarmRstPacketsSentList" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarms.property.alarmRstPacketsSentList"></a>

```typescript
public readonly alarmRstPacketsSentList: PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm">PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm</a>[]

The RstPacketsSent alarm.

---


### PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm <a name="PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm"></a>

This alarm helps you detect unhealthy targets of an endpoint service based on the number of reset packets that are sent to endpoints.

When you debug connection errors with a consumer of your service, you can validate whether the service is resetting connections with
the RstPacketsSent metric, or if something else is failing on the network path.

The alarm is triggered when the the number of reset packets exceeds the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.Initializer"></a>

```typescript
import { PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm(scope: IConstruct, id: string, props: PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps">PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps">PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.isConstruct"></a>

```typescript
import { PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.isOwnedResource"></a>

```typescript
import { PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.isResource"></a>

```typescript
import { PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.fromAlarmArn"></a>

```typescript
import { PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.fromAlarmName"></a>

```typescript
import { PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### Queue <a name="Queue" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue"></a>

An extension of the SQS Queue construct that adds methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.Initializer"></a>

```typescript
import { Queue } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new Queue(scope: Construct, id: string, props?: QueueProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_sqs.QueueProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_sqs.QueueProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.addToResourcePolicy">addToResourcePolicy</a></code> | Adds a statement to the IAM resource policy associated with this queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grant">grant</a></code> | Grant the actions defined in queueActions to the identity Principal given on this SQS queue resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grantConsumeMessages">grantConsumeMessages</a></code> | Grant permissions to consume messages from a queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grantOnKey">grantOnKey</a></code> | Gives permissions to a grantable entity to perform actions on the encryption key. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grantPurge">grantPurge</a></code> | Grant an IAM principal permissions to purge all messages from the queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grantSendMessages">grantSendMessages</a></code> | Grant access to send messages to a queue to the given identity. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metric">metric</a></code> | Return the given named metric for this Queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricApproximateAgeOfOldestMessage">metricApproximateAgeOfOldestMessage</a></code> | The approximate age of the oldest non-deleted message in the queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricApproximateNumberOfMessagesDelayed">metricApproximateNumberOfMessagesDelayed</a></code> | The number of messages in the queue that are delayed and not available for reading immediately. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricApproximateNumberOfMessagesNotVisible">metricApproximateNumberOfMessagesNotVisible</a></code> | The number of messages that are in flight. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricApproximateNumberOfMessagesVisible">metricApproximateNumberOfMessagesVisible</a></code> | The number of messages available for retrieval from the queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricNumberOfEmptyReceives">metricNumberOfEmptyReceives</a></code> | The number of ReceiveMessage API calls that did not return a message. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricNumberOfMessagesDeleted">metricNumberOfMessagesDeleted</a></code> | The number of messages deleted from the queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricNumberOfMessagesReceived">metricNumberOfMessagesReceived</a></code> | The number of messages returned by calls to the ReceiveMessage action. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricNumberOfMessagesSent">metricNumberOfMessagesSent</a></code> | The number of messages added to a queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricSentMessageSize">metricSentMessageSize</a></code> | The size of messages added to a queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.alarmApproximateAgeOfOldestMessage">alarmApproximateAgeOfOldestMessage</a></code> | Creates an alarm that watches the age of the oldest message in the queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.alarmApproximateNumberOfMessagesNotVisible">alarmApproximateNumberOfMessagesNotVisible</a></code> | Creates an alarm that watches the number of messages that are in flight. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.alarmApproximateNumberOfMessagesVisible">alarmApproximateNumberOfMessagesVisible</a></code> | Creates an alarm that watches the number of messages that are visible in the queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.alarmNumberOfMessagesSent">alarmNumberOfMessagesSent</a></code> | Creates an alarm that watches the number of messages that are sent. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for an SQS queue. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addToResourcePolicy` <a name="addToResourcePolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.addToResourcePolicy"></a>

```typescript
public addToResourcePolicy(statement: PolicyStatement): AddToResourcePolicyResult
```

Adds a statement to the IAM resource policy associated with this queue.

If this queue was created in this stack (`new Queue`), a queue policy
will be automatically created upon the first call to `addToPolicy`. If
the queue is imported (`Queue.import`), then this is a no-op.

###### `statement`<sup>Required</sup> <a name="statement" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.addToResourcePolicy.parameter.statement"></a>

- *Type:* aws-cdk-lib.aws_iam.PolicyStatement

---

##### `grant` <a name="grant" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grant"></a>

```typescript
public grant(grantee: IGrantable, actions: ...string[]): Grant
```

Grant the actions defined in queueActions to the identity Principal given on this SQS queue resource.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grant.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

Principal to grant right to.

---

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grant.parameter.actions"></a>

- *Type:* ...string[]

The actions to grant.

---

##### `grantConsumeMessages` <a name="grantConsumeMessages" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grantConsumeMessages"></a>

```typescript
public grantConsumeMessages(grantee: IGrantable): Grant
```

Grant permissions to consume messages from a queue.

This will grant the following permissions:

  - sqs:ChangeMessageVisibility
  - sqs:DeleteMessage
  - sqs:ReceiveMessage
  - sqs:GetQueueAttributes
  - sqs:GetQueueUrl

If encryption is used, permission to use the key to decrypt the contents of the queue will also be granted to the same principal.

This will grant the following KMS permissions:

  - kms:Decrypt


The use of this method is discouraged. Please use `grants.consumeMessages()` instead.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grantConsumeMessages.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

Principal to grant consume rights to.

---

##### `grantOnKey` <a name="grantOnKey" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grantOnKey"></a>

```typescript
public grantOnKey(grantee: IGrantable, actions: ...string[]): GrantOnKeyResult
```

Gives permissions to a grantable entity to perform actions on the encryption key.

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grantOnKey.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grantOnKey.parameter.actions"></a>

- *Type:* ...string[]

---

##### `grantPurge` <a name="grantPurge" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grantPurge"></a>

```typescript
public grantPurge(grantee: IGrantable): Grant
```

Grant an IAM principal permissions to purge all messages from the queue.

This will grant the following permissions:

 - sqs:PurgeQueue
 - sqs:GetQueueAttributes
 - sqs:GetQueueUrl


The use of this method is discouraged. Please use `grants.purge()` instead.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grantPurge.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

Principal to grant send rights to.

---

##### `grantSendMessages` <a name="grantSendMessages" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grantSendMessages"></a>

```typescript
public grantSendMessages(grantee: IGrantable): Grant
```

Grant access to send messages to a queue to the given identity.

This will grant the following permissions:

 - sqs:SendMessage
 - sqs:GetQueueAttributes
 - sqs:GetQueueUrl

If encryption is used, permission to use the key to encrypt/decrypt the contents of the queue will also be granted to the same principal.

This will grant the following KMS permissions:

 - kms:Decrypt
 - kms:Encrypt
 - kms:ReEncrypt*
 - kms:GenerateDataKey*


The use of this method is discouraged. Please use `grants.sendMessages()` instead.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.grantSendMessages.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

Principal to grant send rights to.

---

##### `metric` <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metric"></a>

```typescript
public metric(metricName: string, props?: MetricOptions): Metric
```

Return the given named metric for this Queue.

###### `metricName`<sup>Required</sup> <a name="metricName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metric.parameter.metricName"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metric.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricApproximateAgeOfOldestMessage` <a name="metricApproximateAgeOfOldestMessage" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricApproximateAgeOfOldestMessage"></a>

```typescript
public metricApproximateAgeOfOldestMessage(props?: MetricOptions): Metric
```

The approximate age of the oldest non-deleted message in the queue.

Maximum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricApproximateAgeOfOldestMessage.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricApproximateNumberOfMessagesDelayed` <a name="metricApproximateNumberOfMessagesDelayed" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricApproximateNumberOfMessagesDelayed"></a>

```typescript
public metricApproximateNumberOfMessagesDelayed(props?: MetricOptions): Metric
```

The number of messages in the queue that are delayed and not available for reading immediately.

Maximum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricApproximateNumberOfMessagesDelayed.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricApproximateNumberOfMessagesNotVisible` <a name="metricApproximateNumberOfMessagesNotVisible" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricApproximateNumberOfMessagesNotVisible"></a>

```typescript
public metricApproximateNumberOfMessagesNotVisible(props?: MetricOptions): Metric
```

The number of messages that are in flight.

Maximum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricApproximateNumberOfMessagesNotVisible.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricApproximateNumberOfMessagesVisible` <a name="metricApproximateNumberOfMessagesVisible" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricApproximateNumberOfMessagesVisible"></a>

```typescript
public metricApproximateNumberOfMessagesVisible(props?: MetricOptions): Metric
```

The number of messages available for retrieval from the queue.

Maximum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricApproximateNumberOfMessagesVisible.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricNumberOfEmptyReceives` <a name="metricNumberOfEmptyReceives" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricNumberOfEmptyReceives"></a>

```typescript
public metricNumberOfEmptyReceives(props?: MetricOptions): Metric
```

The number of ReceiveMessage API calls that did not return a message.

Sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricNumberOfEmptyReceives.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricNumberOfMessagesDeleted` <a name="metricNumberOfMessagesDeleted" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricNumberOfMessagesDeleted"></a>

```typescript
public metricNumberOfMessagesDeleted(props?: MetricOptions): Metric
```

The number of messages deleted from the queue.

Sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricNumberOfMessagesDeleted.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricNumberOfMessagesReceived` <a name="metricNumberOfMessagesReceived" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricNumberOfMessagesReceived"></a>

```typescript
public metricNumberOfMessagesReceived(props?: MetricOptions): Metric
```

The number of messages returned by calls to the ReceiveMessage action.

Sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricNumberOfMessagesReceived.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricNumberOfMessagesSent` <a name="metricNumberOfMessagesSent" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricNumberOfMessagesSent"></a>

```typescript
public metricNumberOfMessagesSent(props?: MetricOptions): Metric
```

The number of messages added to a queue.

Sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricNumberOfMessagesSent.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricSentMessageSize` <a name="metricSentMessageSize" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricSentMessageSize"></a>

```typescript
public metricSentMessageSize(props?: MetricOptions): Metric
```

The size of messages added to a queue.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.metricSentMessageSize.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `alarmApproximateAgeOfOldestMessage` <a name="alarmApproximateAgeOfOldestMessage" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.alarmApproximateAgeOfOldestMessage"></a>

```typescript
public alarmApproximateAgeOfOldestMessage(props: SqsApproximateAgeOfOldestMessageAlarmConfig): SqsApproximateAgeOfOldestMessageAlarm
```

Creates an alarm that watches the age of the oldest message in the queue.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.alarmApproximateAgeOfOldestMessage.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig">SqsApproximateAgeOfOldestMessageAlarmConfig</a>

---

##### `alarmApproximateNumberOfMessagesNotVisible` <a name="alarmApproximateNumberOfMessagesNotVisible" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.alarmApproximateNumberOfMessagesNotVisible"></a>

```typescript
public alarmApproximateNumberOfMessagesNotVisible(props: SqsApproximateNumberOfMessagesNotVisibleAlarmConfig): SqsApproximateNumberOfMessagesNotVisibleAlarm
```

Creates an alarm that watches the number of messages that are in flight.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.alarmApproximateNumberOfMessagesNotVisible.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig">SqsApproximateNumberOfMessagesNotVisibleAlarmConfig</a>

---

##### `alarmApproximateNumberOfMessagesVisible` <a name="alarmApproximateNumberOfMessagesVisible" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.alarmApproximateNumberOfMessagesVisible"></a>

```typescript
public alarmApproximateNumberOfMessagesVisible(props: SqsApproximateNumberOfMessagesVisibleAlarmConfig): SqsApproximateNumberOfMessagesVisibleAlarm
```

Creates an alarm that watches the number of messages that are visible in the queue.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.alarmApproximateNumberOfMessagesVisible.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig">SqsApproximateNumberOfMessagesVisibleAlarmConfig</a>

---

##### `alarmNumberOfMessagesSent` <a name="alarmNumberOfMessagesSent" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.alarmNumberOfMessagesSent"></a>

```typescript
public alarmNumberOfMessagesSent(props?: SqsNumberOfMessagesSentAlarmConfig): SqsNumberOfMessagesSentAlarm
```

Creates an alarm that watches the number of messages that are sent.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.alarmNumberOfMessagesSent.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig">SqsNumberOfMessagesSentAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: SqsRecommendedAlarmsConfig): void
```

Creates the recommended alarms for an SQS queue.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig">SqsRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.fromQueueArn">fromQueueArn</a></code> | Import an existing SQS queue provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.fromQueueAttributes">fromQueueAttributes</a></code> | Import an existing queue. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.isConstruct"></a>

```typescript
import { Queue } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Queue.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.isOwnedResource"></a>

```typescript
import { Queue } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Queue.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.isResource"></a>

```typescript
import { Queue } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Queue.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromQueueArn` <a name="fromQueueArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.fromQueueArn"></a>

```typescript
import { Queue } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Queue.fromQueueArn(scope: Construct, id: string, queueArn: string)
```

Import an existing SQS queue provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.fromQueueArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct.

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.fromQueueArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `queueArn`<sup>Required</sup> <a name="queueArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.fromQueueArn.parameter.queueArn"></a>

- *Type:* string

queue ARN (i.e. arn:aws:sqs:us-east-2:444455556666:queue1).

---

##### `fromQueueAttributes` <a name="fromQueueAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.fromQueueAttributes"></a>

```typescript
import { Queue } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Queue.fromQueueAttributes(scope: Construct, id: string, attrs: QueueAttributes)
```

Import an existing queue.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.fromQueueAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.fromQueueAttributes.parameter.id"></a>

- *Type:* string

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.fromQueueAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_sqs.QueueAttributes

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.fifo">fifo</a></code> | <code>boolean</code> | Whether this queue is an Amazon SQS FIFO queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.grants">grants</a></code> | <code>aws-cdk-lib.aws_sqs.QueueGrants</code> | Collection of grant methods for a Queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.queueArn">queueArn</a></code> | <code>string</code> | The ARN of this queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.queueName">queueName</a></code> | <code>string</code> | The name of this queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.queueRef">queueRef</a></code> | <code>aws-cdk-lib.interfaces.aws_sqs.QueueReference</code> | A reference to a Queue resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.queueUrl">queueUrl</a></code> | <code>string</code> | The URL of this queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.encryptionMasterKey">encryptionMasterKey</a></code> | <code>aws-cdk-lib.aws_kms.IKey</code> | If this queue is encrypted, this is the KMS key. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.encryptionType">encryptionType</a></code> | <code>aws-cdk-lib.aws_sqs.QueueEncryption</code> | Whether the contents of the queue are encrypted, and by what type of key. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.deadLetterQueue">deadLetterQueue</a></code> | <code>aws-cdk-lib.aws_sqs.DeadLetterQueue</code> | If this queue is configured with a dead-letter queue, this is the dead-letter queue settings. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `fifo`<sup>Required</sup> <a name="fifo" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.fifo"></a>

```typescript
public readonly fifo: boolean;
```

- *Type:* boolean

Whether this queue is an Amazon SQS FIFO queue.

If false, this is a standard queue.

---

##### `grants`<sup>Required</sup> <a name="grants" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.grants"></a>

```typescript
public readonly grants: QueueGrants;
```

- *Type:* aws-cdk-lib.aws_sqs.QueueGrants

Collection of grant methods for a Queue.

---

##### `queueArn`<sup>Required</sup> <a name="queueArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.queueArn"></a>

```typescript
public readonly queueArn: string;
```

- *Type:* string

The ARN of this queue.

---

##### `queueName`<sup>Required</sup> <a name="queueName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.queueName"></a>

```typescript
public readonly queueName: string;
```

- *Type:* string

The name of this queue.

---

##### `queueRef`<sup>Required</sup> <a name="queueRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.queueRef"></a>

```typescript
public readonly queueRef: QueueReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_sqs.QueueReference

A reference to a Queue resource.

---

##### `queueUrl`<sup>Required</sup> <a name="queueUrl" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.queueUrl"></a>

```typescript
public readonly queueUrl: string;
```

- *Type:* string

The URL of this queue.

---

##### `encryptionMasterKey`<sup>Optional</sup> <a name="encryptionMasterKey" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.encryptionMasterKey"></a>

```typescript
public readonly encryptionMasterKey: IKey;
```

- *Type:* aws-cdk-lib.aws_kms.IKey

If this queue is encrypted, this is the KMS key.

---

##### `encryptionType`<sup>Optional</sup> <a name="encryptionType" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.encryptionType"></a>

```typescript
public readonly encryptionType: QueueEncryption;
```

- *Type:* aws-cdk-lib.aws_sqs.QueueEncryption

Whether the contents of the queue are encrypted, and by what type of key.

---

##### `deadLetterQueue`<sup>Optional</sup> <a name="deadLetterQueue" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.deadLetterQueue"></a>

```typescript
public readonly deadLetterQueue: DeadLetterQueue;
```

- *Type:* aws-cdk-lib.aws_sqs.DeadLetterQueue

If this queue is configured with a dead-letter queue, this is the dead-letter queue settings.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.Queue.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### RdsAuroraBinLogReplicationLagAlarm <a name="RdsAuroraBinLogReplicationLagAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm"></a>

An alarm that monitors the error state of Aurora writer instance replication.

This alarm is used to detect whether the writer instance is in an error state and can’t replicate the source.

The alarm is triggered when the value is less than or equal to threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.Initializer"></a>

```typescript
import { RdsAuroraBinLogReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RdsAuroraBinLogReplicationLagAlarm(scope: Construct, id: string, props: RdsAuroraBinLogReplicationLagAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps">RdsAuroraBinLogReplicationLagAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps">RdsAuroraBinLogReplicationLagAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.isConstruct"></a>

```typescript
import { RdsAuroraBinLogReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraBinLogReplicationLagAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.isOwnedResource"></a>

```typescript
import { RdsAuroraBinLogReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraBinLogReplicationLagAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.isResource"></a>

```typescript
import { RdsAuroraBinLogReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraBinLogReplicationLagAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.fromAlarmArn"></a>

```typescript
import { RdsAuroraBinLogReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraBinLogReplicationLagAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.fromAlarmName"></a>

```typescript
import { RdsAuroraBinLogReplicationLagAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraBinLogReplicationLagAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### RdsAuroraRecommendedAlarms <a name="RdsAuroraRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms"></a>

A construct that creates recommended alarms for an RDS cluster.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#RDS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#RDS)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.Initializer"></a>

```typescript
import { RdsAuroraRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RdsAuroraRecommendedAlarms(scope: Construct, id: string, props: RdsAuroraRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps">RdsAuroraRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps">RdsAuroraRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.isConstruct"></a>

```typescript
import { RdsAuroraRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.property.alarmAuroraBinLogReplicationLag">alarmAuroraBinLogReplicationLag</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm">RdsAuroraBinLogReplicationLagAlarm</a></code> | The Bin Log Replication lag alarm for the database cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.property.alarmAuroraVolumeBytesLeftTotal">alarmAuroraVolumeBytesLeftTotal</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm">RdsAuroraVolumeBytesLeftTotalAlarm</a></code> | The AuroraVolumeBytesLeftTotal alarm for the database cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.property.alarmAuroraVolumeBytesUsed">alarmAuroraVolumeBytesUsed</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm">RdsAuroraVolumeBytesUsedAlarm</a></code> | The VolumeBytesUsed anomaly detection alarm for the database cluster. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmAuroraBinLogReplicationLag`<sup>Optional</sup> <a name="alarmAuroraBinLogReplicationLag" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.property.alarmAuroraBinLogReplicationLag"></a>

```typescript
public readonly alarmAuroraBinLogReplicationLag: RdsAuroraBinLogReplicationLagAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarm">RdsAuroraBinLogReplicationLagAlarm</a>

The Bin Log Replication lag alarm for the database cluster.

---

##### `alarmAuroraVolumeBytesLeftTotal`<sup>Optional</sup> <a name="alarmAuroraVolumeBytesLeftTotal" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.property.alarmAuroraVolumeBytesLeftTotal"></a>

```typescript
public readonly alarmAuroraVolumeBytesLeftTotal: RdsAuroraVolumeBytesLeftTotalAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm">RdsAuroraVolumeBytesLeftTotalAlarm</a>

The AuroraVolumeBytesLeftTotal alarm for the database cluster.

---

##### `alarmAuroraVolumeBytesUsed`<sup>Optional</sup> <a name="alarmAuroraVolumeBytesUsed" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarms.property.alarmAuroraVolumeBytesUsed"></a>

```typescript
public readonly alarmAuroraVolumeBytesUsed: RdsAuroraVolumeBytesUsedAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm">RdsAuroraVolumeBytesUsedAlarm</a>

The VolumeBytesUsed anomaly detection alarm for the database cluster.

---


### RdsAuroraVolumeBytesLeftTotalAlarm <a name="RdsAuroraVolumeBytesLeftTotalAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm"></a>

An alarm that monitors the remaining available space (in bytes) for the cluster volume.

This alarm is used to detect how close the Aurora cluster is to the volume size limit. This
alarm can prevent an out-of-space error that occurs when your cluster runs out of space.

The alarm is triggered when the remaining available space (in bytes) is less than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.Initializer"></a>

```typescript
import { RdsAuroraVolumeBytesLeftTotalAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RdsAuroraVolumeBytesLeftTotalAlarm(scope: Construct, id: string, props: RdsAuroraVolumeBytesLeftTotalAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps">RdsAuroraVolumeBytesLeftTotalAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps">RdsAuroraVolumeBytesLeftTotalAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.isConstruct"></a>

```typescript
import { RdsAuroraVolumeBytesLeftTotalAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraVolumeBytesLeftTotalAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.isOwnedResource"></a>

```typescript
import { RdsAuroraVolumeBytesLeftTotalAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraVolumeBytesLeftTotalAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.isResource"></a>

```typescript
import { RdsAuroraVolumeBytesLeftTotalAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraVolumeBytesLeftTotalAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.fromAlarmArn"></a>

```typescript
import { RdsAuroraVolumeBytesLeftTotalAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraVolumeBytesLeftTotalAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.fromAlarmName"></a>

```typescript
import { RdsAuroraVolumeBytesLeftTotalAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraVolumeBytesLeftTotalAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### RdsAuroraVolumeBytesUsedAlarm <a name="RdsAuroraVolumeBytesUsedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm"></a>

An anomaly detection alarm on the Aurora cluster `VolumeBytesUsed` metric.

Catches abnormally fast storage growth that static thresholds can't express
(Aurora storage grows automatically; the Aurora MySQL volume cap is already
covered by `AuroraVolumeBytesLeftTotal`). Applies to both Aurora MySQL and
Aurora PostgreSQL.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.Initializer"></a>

```typescript
import { RdsAuroraVolumeBytesUsedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RdsAuroraVolumeBytesUsedAlarm(scope: Construct, id: string, props: RdsAuroraVolumeBytesUsedAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps">RdsAuroraVolumeBytesUsedAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps">RdsAuroraVolumeBytesUsedAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.isConstruct"></a>

```typescript
import { RdsAuroraVolumeBytesUsedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraVolumeBytesUsedAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.isOwnedResource"></a>

```typescript
import { RdsAuroraVolumeBytesUsedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraVolumeBytesUsedAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.isResource"></a>

```typescript
import { RdsAuroraVolumeBytesUsedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraVolumeBytesUsedAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.fromAlarmArn"></a>

```typescript
import { RdsAuroraVolumeBytesUsedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraVolumeBytesUsedAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.fromAlarmName"></a>

```typescript
import { RdsAuroraVolumeBytesUsedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsAuroraVolumeBytesUsedAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### RdsInstanceCpuUtilizationAlarm <a name="RdsInstanceCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm"></a>

An alarm that monitors CPU utilization for an RDS instance.

This alarm is used to detect consistent high CPU utilization in order to prevent very
high response time and time-outs.

The alarm is triggered when the CPU utilization exceeds the % threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.Initializer"></a>

```typescript
import { RdsInstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RdsInstanceCpuUtilizationAlarm(scope: Construct, id: string, props: RdsInstanceCpuUtilizationAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps">RdsInstanceCpuUtilizationAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps">RdsInstanceCpuUtilizationAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.isConstruct"></a>

```typescript
import { RdsInstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceCpuUtilizationAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.isOwnedResource"></a>

```typescript
import { RdsInstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceCpuUtilizationAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.isResource"></a>

```typescript
import { RdsInstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceCpuUtilizationAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.fromAlarmArn"></a>

```typescript
import { RdsInstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceCpuUtilizationAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.fromAlarmName"></a>

```typescript
import { RdsInstanceCpuUtilizationAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceCpuUtilizationAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### RdsInstanceDatabaseConnectionsAlarm <a name="RdsInstanceDatabaseConnectionsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm"></a>

An alarm that monitors the number of client network connections to the database instance.

This alarm is used to help prevent rejected connections when the maximum number of DB
connections is reached.

The alarm is triggered when number of connections is greater than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.Initializer"></a>

```typescript
import { RdsInstanceDatabaseConnectionsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RdsInstanceDatabaseConnectionsAlarm(scope: Construct, id: string, props: RdsInstanceDatabaseConnectionsAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps">RdsInstanceDatabaseConnectionsAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps">RdsInstanceDatabaseConnectionsAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.isConstruct"></a>

```typescript
import { RdsInstanceDatabaseConnectionsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceDatabaseConnectionsAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.isOwnedResource"></a>

```typescript
import { RdsInstanceDatabaseConnectionsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceDatabaseConnectionsAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.isResource"></a>

```typescript
import { RdsInstanceDatabaseConnectionsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceDatabaseConnectionsAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.fromAlarmArn"></a>

```typescript
import { RdsInstanceDatabaseConnectionsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceDatabaseConnectionsAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.fromAlarmName"></a>

```typescript
import { RdsInstanceDatabaseConnectionsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceDatabaseConnectionsAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### RdsInstanceDbLoadAlarm <a name="RdsInstanceDbLoadAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm"></a>

An alarm that monitors the number of concurrent active sessions on the database.

This alarm helps to monitor high DB load. If the number of processes exceed the number of vCPUs,
the processes start queuing. When the queuing increases, the performance is impacted.

The alarm is triggered when the number of active sessions for the database is
greater than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.Initializer"></a>

```typescript
import { RdsInstanceDbLoadAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RdsInstanceDbLoadAlarm(scope: Construct, id: string, props: RdsInstanceDbLoadAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps">RdsInstanceDbLoadAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps">RdsInstanceDbLoadAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.isConstruct"></a>

```typescript
import { RdsInstanceDbLoadAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceDbLoadAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.isOwnedResource"></a>

```typescript
import { RdsInstanceDbLoadAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceDbLoadAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.isResource"></a>

```typescript
import { RdsInstanceDbLoadAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceDbLoadAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.fromAlarmArn"></a>

```typescript
import { RdsInstanceDbLoadAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceDbLoadAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.fromAlarmName"></a>

```typescript
import { RdsInstanceDbLoadAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceDbLoadAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### RdsInstanceFreeableMemoryAlarm <a name="RdsInstanceFreeableMemoryAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm"></a>

An alarm that monitors the amount of available memory (RAM) on the RDS instance.

This alarm is used to help prevent running out of memory which can result in rejected connections.

The alarm is triggered when the percentage of available memory is less than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.Initializer"></a>

```typescript
import { RdsInstanceFreeableMemoryAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RdsInstanceFreeableMemoryAlarm(scope: Construct, id: string, props: RdsInstanceFreeableMemoryAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps">RdsInstanceFreeableMemoryAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps">RdsInstanceFreeableMemoryAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.isConstruct"></a>

```typescript
import { RdsInstanceFreeableMemoryAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceFreeableMemoryAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.isOwnedResource"></a>

```typescript
import { RdsInstanceFreeableMemoryAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceFreeableMemoryAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.isResource"></a>

```typescript
import { RdsInstanceFreeableMemoryAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceFreeableMemoryAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.fromAlarmArn"></a>

```typescript
import { RdsInstanceFreeableMemoryAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceFreeableMemoryAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.fromAlarmName"></a>

```typescript
import { RdsInstanceFreeableMemoryAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceFreeableMemoryAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### RdsInstanceFreeLocalStorageAlarm <a name="RdsInstanceFreeLocalStorageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm"></a>

An alarm that monitors the amount of available local storage space for an Aurora instance used for temporary files.

This alarm is used to detect how close the Aurora DB instance is to reaching the local storage limit.
This alarm can prevent an out-of-space error that occurs when your DB instance runs out of local storage.

The alarm is triggered when the amount of available local storage space (bytes) is less than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.Initializer"></a>

```typescript
import { RdsInstanceFreeLocalStorageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RdsInstanceFreeLocalStorageAlarm(scope: Construct, id: string, props: RdsInstanceFreeLocalStorageAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps">RdsInstanceFreeLocalStorageAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps">RdsInstanceFreeLocalStorageAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.isConstruct"></a>

```typescript
import { RdsInstanceFreeLocalStorageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceFreeLocalStorageAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.isOwnedResource"></a>

```typescript
import { RdsInstanceFreeLocalStorageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceFreeLocalStorageAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.isResource"></a>

```typescript
import { RdsInstanceFreeLocalStorageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceFreeLocalStorageAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.fromAlarmArn"></a>

```typescript
import { RdsInstanceFreeLocalStorageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceFreeLocalStorageAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.fromAlarmName"></a>

```typescript
import { RdsInstanceFreeLocalStorageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceFreeLocalStorageAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### RdsInstanceFreeStorageSpaceAlarm <a name="RdsInstanceFreeStorageSpaceAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm"></a>

An alarm that monitors the amount of available storage space for an Aurora instance.

This alarm helps prevent storage full issues. This can prevent downtime that occurs when your database
instance runs out of storage.

The alarm is triggered when the amount of available storage space (bytes) is less than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.Initializer"></a>

```typescript
import { RdsInstanceFreeStorageSpaceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RdsInstanceFreeStorageSpaceAlarm(scope: Construct, id: string, props: RdsInstanceFreeStorageSpaceAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps">RdsInstanceFreeStorageSpaceAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps">RdsInstanceFreeStorageSpaceAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.isConstruct"></a>

```typescript
import { RdsInstanceFreeStorageSpaceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceFreeStorageSpaceAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.isOwnedResource"></a>

```typescript
import { RdsInstanceFreeStorageSpaceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceFreeStorageSpaceAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.isResource"></a>

```typescript
import { RdsInstanceFreeStorageSpaceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceFreeStorageSpaceAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.fromAlarmArn"></a>

```typescript
import { RdsInstanceFreeStorageSpaceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceFreeStorageSpaceAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.fromAlarmName"></a>

```typescript
import { RdsInstanceFreeStorageSpaceAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceFreeStorageSpaceAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### RdsInstanceReadLatencyAlarm <a name="RdsInstanceReadLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm"></a>

An alarm that monitors the average amount of time taken per disk read I/O operation.

This alarm is used to detect high read latency. Database disks normally have a low read/write latency,
but they can have issues that can cause high latency operations.

The alarm is triggered when the average amount of time per disk read operation (in milliseconds) is
greater than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.Initializer"></a>

```typescript
import { RdsInstanceReadLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RdsInstanceReadLatencyAlarm(scope: Construct, id: string, props: RdsInstanceReadLatencyAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps">RdsInstanceReadLatencyAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps">RdsInstanceReadLatencyAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.isConstruct"></a>

```typescript
import { RdsInstanceReadLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceReadLatencyAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.isOwnedResource"></a>

```typescript
import { RdsInstanceReadLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceReadLatencyAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.isResource"></a>

```typescript
import { RdsInstanceReadLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceReadLatencyAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.fromAlarmArn"></a>

```typescript
import { RdsInstanceReadLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceReadLatencyAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.fromAlarmName"></a>

```typescript
import { RdsInstanceReadLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceReadLatencyAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### RdsInstanceRecommendedAlarms <a name="RdsInstanceRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms"></a>

A construct that creates recommended alarms for an RDS cluster instance.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#RDS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#RDS)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.Initializer"></a>

```typescript
import { RdsInstanceRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RdsInstanceRecommendedAlarms(scope: Construct, id: string, props: RdsInstanceRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps">RdsInstanceRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps">RdsInstanceRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.isConstruct"></a>

```typescript
import { RdsInstanceRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmCpuUtilization">alarmCpuUtilization</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm">RdsInstanceCpuUtilizationAlarm</a></code> | The CpuUtilization alarm for the database instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmDatabaseConnections">alarmDatabaseConnections</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm">RdsInstanceDatabaseConnectionsAlarm</a></code> | The DatabaseConnections alarm for the database instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmDbLoad">alarmDbLoad</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm">RdsInstanceDbLoadAlarm</a></code> | The DbLoad alarm for the database instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmFreeableMemory">alarmFreeableMemory</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm">RdsInstanceFreeableMemoryAlarm</a></code> | The FreeableMemory alarm for the database instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmFreeLocalStorage">alarmFreeLocalStorage</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm">RdsInstanceFreeLocalStorageAlarm</a></code> | The FreeLocalStorage alarm for the database instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmFreeStorageSpace">alarmFreeStorageSpace</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm">RdsInstanceFreeStorageSpaceAlarm</a></code> | The FreeStorageSpace alarm for the database instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmReadLatency">alarmReadLatency</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm">RdsInstanceReadLatencyAlarm</a></code> | The ReadLatency alarm for the database instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmWriteLatency">alarmWriteLatency</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm">RdsInstanceWriteLatencyAlarm</a></code> | The WriteLatency alarm for the database instance. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmCpuUtilization`<sup>Optional</sup> <a name="alarmCpuUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmCpuUtilization"></a>

```typescript
public readonly alarmCpuUtilization: RdsInstanceCpuUtilizationAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarm">RdsInstanceCpuUtilizationAlarm</a>

The CpuUtilization alarm for the database instance.

---

##### `alarmDatabaseConnections`<sup>Optional</sup> <a name="alarmDatabaseConnections" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmDatabaseConnections"></a>

```typescript
public readonly alarmDatabaseConnections: RdsInstanceDatabaseConnectionsAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarm">RdsInstanceDatabaseConnectionsAlarm</a>

The DatabaseConnections alarm for the database instance.

---

##### `alarmDbLoad`<sup>Optional</sup> <a name="alarmDbLoad" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmDbLoad"></a>

```typescript
public readonly alarmDbLoad: RdsInstanceDbLoadAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarm">RdsInstanceDbLoadAlarm</a>

The DbLoad alarm for the database instance.

---

##### `alarmFreeableMemory`<sup>Optional</sup> <a name="alarmFreeableMemory" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmFreeableMemory"></a>

```typescript
public readonly alarmFreeableMemory: RdsInstanceFreeableMemoryAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarm">RdsInstanceFreeableMemoryAlarm</a>

The FreeableMemory alarm for the database instance.

---

##### `alarmFreeLocalStorage`<sup>Optional</sup> <a name="alarmFreeLocalStorage" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmFreeLocalStorage"></a>

```typescript
public readonly alarmFreeLocalStorage: RdsInstanceFreeLocalStorageAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarm">RdsInstanceFreeLocalStorageAlarm</a>

The FreeLocalStorage alarm for the database instance.

---

##### `alarmFreeStorageSpace`<sup>Optional</sup> <a name="alarmFreeStorageSpace" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmFreeStorageSpace"></a>

```typescript
public readonly alarmFreeStorageSpace: RdsInstanceFreeStorageSpaceAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarm">RdsInstanceFreeStorageSpaceAlarm</a>

The FreeStorageSpace alarm for the database instance.

---

##### `alarmReadLatency`<sup>Optional</sup> <a name="alarmReadLatency" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmReadLatency"></a>

```typescript
public readonly alarmReadLatency: RdsInstanceReadLatencyAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarm">RdsInstanceReadLatencyAlarm</a>

The ReadLatency alarm for the database instance.

---

##### `alarmWriteLatency`<sup>Optional</sup> <a name="alarmWriteLatency" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarms.property.alarmWriteLatency"></a>

```typescript
public readonly alarmWriteLatency: RdsInstanceWriteLatencyAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm">RdsInstanceWriteLatencyAlarm</a>

The WriteLatency alarm for the database instance.

---


### RdsInstanceWriteLatencyAlarm <a name="RdsInstanceWriteLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm"></a>

An alarm that monitors the average amount of time taken per disk write I/O operation.

This alarm is used to detect high write latency. Database disks normally have a low read/write latency,
but they can have issues that can cause high latency operations.

The alarm is triggered when the average amount of time per disk write operation (in milliseconds) is
greater than threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.Initializer"></a>

```typescript
import { RdsInstanceWriteLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RdsInstanceWriteLatencyAlarm(scope: Construct, id: string, props: RdsInstanceWriteLatencyAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps">RdsInstanceWriteLatencyAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps">RdsInstanceWriteLatencyAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.isConstruct"></a>

```typescript
import { RdsInstanceWriteLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceWriteLatencyAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.isOwnedResource"></a>

```typescript
import { RdsInstanceWriteLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceWriteLatencyAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.isResource"></a>

```typescript
import { RdsInstanceWriteLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceWriteLatencyAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.fromAlarmArn"></a>

```typescript
import { RdsInstanceWriteLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceWriteLatencyAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.fromAlarmName"></a>

```typescript
import { RdsInstanceWriteLatencyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RdsInstanceWriteLatencyAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### ReplicationInstance <a name="ReplicationInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance"></a>

An extension for the CfnReplicationInstance construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.Initializer"></a>

```typescript
import { ReplicationInstance } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ReplicationInstance(scope: Construct, id: string, props: CfnReplicationInstanceProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_dms.CfnReplicationInstanceProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_dms.CfnReplicationInstanceProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.overrideLogicalId">overrideLogicalId</a></code> | Overrides the auto-generated logical ID with a specific ID. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addDeletionOverride">addDeletionOverride</a></code> | Syntactic sugar for `addOverride(path, undefined)`. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addDependency">addDependency</a></code> | Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addDependsOn">addDependsOn</a></code> | Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addMetadata">addMetadata</a></code> | Add a value to the CloudFormation Resource Metadata. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addOverride">addOverride</a></code> | Adds an override to the synthesized CloudFormation resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addPropertyDeletionOverride">addPropertyDeletionOverride</a></code> | Adds an override that deletes the value of a property from the resource definition. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addPropertyOverride">addPropertyOverride</a></code> | Adds an override to a resource property. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.applyRemovalPolicy">applyRemovalPolicy</a></code> | Sets the deletion policy of the resource based on the removal policy specified. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.getAtt">getAtt</a></code> | Returns a token for an runtime attribute of this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.getMetadata">getMetadata</a></code> | Retrieve a value value from the CloudFormation Resource Metadata. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.obtainDependencies">obtainDependencies</a></code> | Retrieves an array of resources this resource depends on. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.obtainResourceDependencies">obtainResourceDependencies</a></code> | Get a shallow copy of dependencies between this resource and other resources in the same stack. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.removeDependency">removeDependency</a></code> | Indicates that this resource no longer depends on another resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.replaceDependency">replaceDependency</a></code> | Replaces one dependency with another. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.inspect">inspect</a></code> | Examines the CloudFormation resource and discloses attributes. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.alarmCpuUtilization">alarmCpuUtilization</a></code> | Creates an alarm that monitors the CPU utilization for the Replication Instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.alarmFreeableMemory">alarmFreeableMemory</a></code> | Creates an alarm that monitors the FreeableMemory for the Replication Instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.alarmFreeStorageSpace">alarmFreeStorageSpace</a></code> | Creates an alarm that monitors the Free Storage Space for the Replication Instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.alarmSwapUsage">alarmSwapUsage</a></code> | Creates an alarm that monitors the Swap Usage for the Replication Instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.alarmWriteIops">alarmWriteIops</a></code> | Creates an alarm that monitors the Write IOPS for the Replication Instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the DMS Replication Instance. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `overrideLogicalId` <a name="overrideLogicalId" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.overrideLogicalId"></a>

```typescript
public overrideLogicalId(newLogicalId: string): void
```

Overrides the auto-generated logical ID with a specific ID.

###### `newLogicalId`<sup>Required</sup> <a name="newLogicalId" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.overrideLogicalId.parameter.newLogicalId"></a>

- *Type:* string

The new logical ID to use for this stack element.

---

##### `addDeletionOverride` <a name="addDeletionOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addDeletionOverride"></a>

```typescript
public addDeletionOverride(path: string): void
```

Syntactic sugar for `addOverride(path, undefined)`.

###### `path`<sup>Required</sup> <a name="path" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addDeletionOverride.parameter.path"></a>

- *Type:* string

The path of the value to delete.

---

##### `addDependency` <a name="addDependency" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addDependency"></a>

```typescript
public addDependency(target: CfnResource): void
```

Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.

This can be used for resources across stacks (or nested stack) boundaries
and the dependency will automatically be transferred to the relevant scope.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addDependency.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

---

##### ~~`addDependsOn`~~ <a name="addDependsOn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addDependsOn"></a>

```typescript
public addDependsOn(target: CfnResource): void
```

Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addDependsOn.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

---

##### `addMetadata` <a name="addMetadata" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addMetadata"></a>

```typescript
public addMetadata(key: string, value: any): void
```

Add a value to the CloudFormation Resource Metadata.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.)

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addMetadata.parameter.key"></a>

- *Type:* string

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addMetadata.parameter.value"></a>

- *Type:* any

---

##### `addOverride` <a name="addOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addOverride"></a>

```typescript
public addOverride(path: string, value: any): void
```

Adds an override to the synthesized CloudFormation resource.

To add a
property override, either use `addPropertyOverride` or prefix `path` with
"Properties." (i.e. `Properties.TopicName`).

If the override is nested, separate each nested level using a dot (.) in the path parameter.
If there is an array as part of the nesting, specify the index in the path.

To include a literal `.` in the property name, prefix with a `\`. In most
programming languages you will need to write this as `"\\."` because the
`\` itself will need to be escaped.

For example,
```typescript
cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
```
would add the overrides
```json
"Properties": {
  "GlobalSecondaryIndexes": [
    {
      "Projection": {
        "NonKeyAttributes": [ "myattribute" ]
        ...
      }
      ...
    },
    {
      "ProjectionType": "INCLUDE"
      ...
    },
  ]
  ...
}
```

The `value` argument to `addOverride` will not be processed or translated
in any way. Pass raw JSON values in here with the correct capitalization
for CloudFormation. If you pass CDK classes or structs, they will be
rendered with lowercased key names, and CloudFormation will reject the
template.

###### `path`<sup>Required</sup> <a name="path" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addOverride.parameter.path"></a>

- *Type:* string

The path of the property, you can use dot notation to override values in complex types.

Any intermediate keys
will be created as needed.

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addOverride.parameter.value"></a>

- *Type:* any

The value.

Could be primitive or complex.

---

##### `addPropertyDeletionOverride` <a name="addPropertyDeletionOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addPropertyDeletionOverride"></a>

```typescript
public addPropertyDeletionOverride(propertyPath: string): void
```

Adds an override that deletes the value of a property from the resource definition.

###### `propertyPath`<sup>Required</sup> <a name="propertyPath" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addPropertyDeletionOverride.parameter.propertyPath"></a>

- *Type:* string

The path to the property.

---

##### `addPropertyOverride` <a name="addPropertyOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addPropertyOverride"></a>

```typescript
public addPropertyOverride(propertyPath: string, value: any): void
```

Adds an override to a resource property.

Syntactic sugar for `addOverride("Properties.<...>", value)`.

###### `propertyPath`<sup>Required</sup> <a name="propertyPath" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addPropertyOverride.parameter.propertyPath"></a>

- *Type:* string

The path of the property.

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.addPropertyOverride.parameter.value"></a>

- *Type:* any

The value.

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy?: RemovalPolicy, options?: RemovalPolicyOptions): void
```

Sets the deletion policy of the resource based on the removal policy specified.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
cases, a snapshot can be taken of the resource prior to deletion
(`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
can be found in the following link:

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options)

###### `policy`<sup>Optional</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.applyRemovalPolicy.parameter.options"></a>

- *Type:* aws-cdk-lib.RemovalPolicyOptions

---

##### `getAtt` <a name="getAtt" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.getAtt"></a>

```typescript
public getAtt(attributeName: string, typeHint?: ResolutionTypeHint): Reference
```

Returns a token for an runtime attribute of this resource.

Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
in case there is no generated attribute.

###### `attributeName`<sup>Required</sup> <a name="attributeName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.getAtt.parameter.attributeName"></a>

- *Type:* string

The name of the attribute.

---

###### `typeHint`<sup>Optional</sup> <a name="typeHint" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.getAtt.parameter.typeHint"></a>

- *Type:* aws-cdk-lib.ResolutionTypeHint

---

##### `getMetadata` <a name="getMetadata" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.getMetadata"></a>

```typescript
public getMetadata(key: string): any
```

Retrieve a value value from the CloudFormation Resource Metadata.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.)

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.getMetadata.parameter.key"></a>

- *Type:* string

---

##### `obtainDependencies` <a name="obtainDependencies" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.obtainDependencies"></a>

```typescript
public obtainDependencies(): (Stack | CfnResource)[]
```

Retrieves an array of resources this resource depends on.

This assembles dependencies on resources across stacks (including nested stacks)
automatically.

##### `obtainResourceDependencies` <a name="obtainResourceDependencies" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.obtainResourceDependencies"></a>

```typescript
public obtainResourceDependencies(): CfnResource[]
```

Get a shallow copy of dependencies between this resource and other resources in the same stack.

##### `removeDependency` <a name="removeDependency" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.removeDependency"></a>

```typescript
public removeDependency(target: CfnResource): void
```

Indicates that this resource no longer depends on another resource.

This can be used for resources across stacks (including nested stacks)
and the dependency will automatically be removed from the relevant scope.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.removeDependency.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

---

##### `replaceDependency` <a name="replaceDependency" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.replaceDependency"></a>

```typescript
public replaceDependency(target: CfnResource, newTarget: CfnResource): void
```

Replaces one dependency with another.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.replaceDependency.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

The dependency to replace.

---

###### `newTarget`<sup>Required</sup> <a name="newTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.replaceDependency.parameter.newTarget"></a>

- *Type:* aws-cdk-lib.CfnResource

The new dependency to add.

---

##### `inspect` <a name="inspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.inspect"></a>

```typescript
public inspect(inspector: TreeInspector): void
```

Examines the CloudFormation resource and discloses attributes.

###### `inspector`<sup>Required</sup> <a name="inspector" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.inspect.parameter.inspector"></a>

- *Type:* aws-cdk-lib.TreeInspector

tree inspector to collect and process attributes.

---

##### `alarmCpuUtilization` <a name="alarmCpuUtilization" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.alarmCpuUtilization"></a>

```typescript
public alarmCpuUtilization(props?: DmsCpuUtilizationAlarmConfig): DmsReplicationInstanceCpuUtilizationAlarm
```

Creates an alarm that monitors the CPU utilization for the Replication Instance.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.alarmCpuUtilization.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig">DmsCpuUtilizationAlarmConfig</a>

---

##### `alarmFreeableMemory` <a name="alarmFreeableMemory" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.alarmFreeableMemory"></a>

```typescript
public alarmFreeableMemory(props: DmsFreeableMemoryAlarmConfig): DmsReplicationInstanceFreeableMemoryAlarm
```

Creates an alarm that monitors the FreeableMemory for the Replication Instance.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.alarmFreeableMemory.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig">DmsFreeableMemoryAlarmConfig</a>

---

##### `alarmFreeStorageSpace` <a name="alarmFreeStorageSpace" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.alarmFreeStorageSpace"></a>

```typescript
public alarmFreeStorageSpace(props: DmsFreeStorageSpaceAlarmConfig): DmsReplicationInstanceFreeStorageSpaceAlarm
```

Creates an alarm that monitors the Free Storage Space for the Replication Instance.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.alarmFreeStorageSpace.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig">DmsFreeStorageSpaceAlarmConfig</a>

---

##### `alarmSwapUsage` <a name="alarmSwapUsage" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.alarmSwapUsage"></a>

```typescript
public alarmSwapUsage(props?: DmsSwapUsageAlarmConfig): DmsReplicationInstanceSwapUsageAlarm
```

Creates an alarm that monitors the Swap Usage for the Replication Instance.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.alarmSwapUsage.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig">DmsSwapUsageAlarmConfig</a>

---

##### `alarmWriteIops` <a name="alarmWriteIops" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.alarmWriteIops"></a>

```typescript
public alarmWriteIops(props?: DmsWriteIopsAlarmConfig): DmsReplicationInstanceWriteIopsAlarm
```

Creates an alarm that monitors the Write IOPS for the Replication Instance.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.alarmWriteIops.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig">DmsWriteIopsAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: DmsReplicationInstanceRecommendedAlarmsConfig): DmsReplicationInstanceRecommendedAlarms
```

Creates the recommended alarms for the DMS Replication Instance.

> [https://aws.amazon.com/blogs/database/setting-up-amazon-cloudwatch-alarms-for-aws-dms-resources-using-the-aws-cli/](https://aws.amazon.com/blogs/database/setting-up-amazon-cloudwatch-alarms-for-aws-dms-resources-using-the-aws-cli/)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig">DmsReplicationInstanceRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.isCfnElement">isCfnElement</a></code> | Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.isCfnResource">isCfnResource</a></code> | Check whether the given object is a CfnResource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.isCfnReplicationInstance">isCfnReplicationInstance</a></code> | Checks whether the given object is a CfnReplicationInstance. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.isConstruct"></a>

```typescript
import { ReplicationInstance } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ReplicationInstance.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isCfnElement` <a name="isCfnElement" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.isCfnElement"></a>

```typescript
import { ReplicationInstance } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ReplicationInstance.isCfnElement(x: any)
```

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different
versions of this library to be included in the same stack.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.isCfnElement.parameter.x"></a>

- *Type:* any

---

##### `isCfnResource` <a name="isCfnResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.isCfnResource"></a>

```typescript
import { ReplicationInstance } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ReplicationInstance.isCfnResource(x: any)
```

Check whether the given object is a CfnResource.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.isCfnResource.parameter.x"></a>

- *Type:* any

---

##### `isCfnReplicationInstance` <a name="isCfnReplicationInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.isCfnReplicationInstance"></a>

```typescript
import { ReplicationInstance } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ReplicationInstance.isCfnReplicationInstance(x: any)
```

Checks whether the given object is a CfnReplicationInstance.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.isCfnReplicationInstance.parameter.x"></a>

- *Type:* any

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.creationStack">creationStack</a></code> | <code>string[]</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.logicalId">logicalId</a></code> | <code>string</code> | The logical ID for this CloudFormation stack element. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this element is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.ref">ref</a></code> | <code>string</code> | Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.cfnOptions">cfnOptions</a></code> | <code>aws-cdk-lib.ICfnResourceOptions</code> | Options for this resource, such as condition, update policy etc. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.cfnResourceType">cfnResourceType</a></code> | <code>string</code> | AWS resource type. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.attrId">attrId</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.attrReplicationInstancePrivateIpAddresses">attrReplicationInstancePrivateIpAddresses</a></code> | <code>string</code> | One or more private IP addresses for the replication instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.attrReplicationInstancePublicIpAddresses">attrReplicationInstancePublicIpAddresses</a></code> | <code>string</code> | One or more public IP addresses for the replication instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.replicationInstanceRef">replicationInstanceRef</a></code> | <code>aws-cdk-lib.interfaces.aws_dms.ReplicationInstanceReference</code> | A reference to a ReplicationInstance resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.tags">tags</a></code> | <code>aws-cdk-lib.TagManager</code> | Tag Manager which manages the tags for this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.replicationInstanceClass">replicationInstanceClass</a></code> | <code>string</code> | The compute and memory capacity of the replication instance as defined for the specified replication instance class. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.allocatedStorage">allocatedStorage</a></code> | <code>number</code> | The amount of storage (in gigabytes) to be initially allocated for the replication instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.allowMajorVersionUpgrade">allowMajorVersionUpgrade</a></code> | <code>boolean \| aws-cdk-lib.IResolvable</code> | Indicates that major version upgrades are allowed. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.autoMinorVersionUpgrade">autoMinorVersionUpgrade</a></code> | <code>boolean \| aws-cdk-lib.IResolvable</code> | A value that indicates whether minor engine upgrades are applied automatically to the replication instance during the maintenance window. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.availabilityZone">availabilityZone</a></code> | <code>string</code> | The Availability Zone that the replication instance will be created in. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.dnsNameServers">dnsNameServers</a></code> | <code>string</code> | A list of custom DNS name servers supported for the replication instance to access your on-premise source or target database. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.engineVersion">engineVersion</a></code> | <code>string</code> | The engine version number of the replication instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.kmsKeyId">kmsKeyId</a></code> | <code>string</code> | An AWS  key identifier that is used to encrypt the data on the replication instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.multiAz">multiAz</a></code> | <code>boolean \| aws-cdk-lib.IResolvable</code> | Specifies whether the replication instance is a Multi-AZ deployment. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.networkType">networkType</a></code> | <code>string</code> | The type of IP address protocol used by a replication instance, such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.preferredMaintenanceWindow">preferredMaintenanceWindow</a></code> | <code>string</code> | The weekly time range during which system maintenance can occur, in UTC. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.publiclyAccessible">publiclyAccessible</a></code> | <code>boolean \| aws-cdk-lib.IResolvable</code> | Specifies the accessibility options for the replication instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.replicationInstanceIdentifier">replicationInstanceIdentifier</a></code> | <code>string</code> | The replication instance identifier. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.replicationSubnetGroupIdentifier">replicationSubnetGroupIdentifier</a></code> | <code>string</code> | A subnet group to associate with the replication instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.resourceIdentifier">resourceIdentifier</a></code> | <code>string</code> | A display name for the resource identifier at the end of the `EndpointArn` response parameter that is returned in the created `Endpoint` object. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.tagsRaw">tagsRaw</a></code> | <code>aws-cdk-lib.CfnTag[]</code> | One or more tags to be assigned to the replication instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.vpcSecurityGroupIds">vpcSecurityGroupIds</a></code> | <code>string[]</code> | Specifies the virtual private cloud (VPC) security group to be used with the replication instance. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `creationStack`<sup>Required</sup> <a name="creationStack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.creationStack"></a>

```typescript
public readonly creationStack: string[];
```

- *Type:* string[]

---

##### `logicalId`<sup>Required</sup> <a name="logicalId" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.logicalId"></a>

```typescript
public readonly logicalId: string;
```

- *Type:* string

The logical ID for this CloudFormation stack element.

The logical ID of the element
is calculated from the path of the resource node in the construct tree.

To override this value, use `overrideLogicalId(newLogicalId)`.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this element is defined.

CfnElements must be defined within a stack scope (directly or indirectly).

---

##### `ref`<sup>Required</sup> <a name="ref" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.ref"></a>

```typescript
public readonly ref: string;
```

- *Type:* string

Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.

If, by any chance, the intrinsic reference of a resource is not a string, you could
coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.

---

##### `cfnOptions`<sup>Required</sup> <a name="cfnOptions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.cfnOptions"></a>

```typescript
public readonly cfnOptions: ICfnResourceOptions;
```

- *Type:* aws-cdk-lib.ICfnResourceOptions

Options for this resource, such as condition, update policy etc.

---

##### `cfnResourceType`<sup>Required</sup> <a name="cfnResourceType" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.cfnResourceType"></a>

```typescript
public readonly cfnResourceType: string;
```

- *Type:* string

AWS resource type.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

---

##### `attrId`<sup>Required</sup> <a name="attrId" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.attrId"></a>

```typescript
public readonly attrId: string;
```

- *Type:* string

---

##### `attrReplicationInstancePrivateIpAddresses`<sup>Required</sup> <a name="attrReplicationInstancePrivateIpAddresses" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.attrReplicationInstancePrivateIpAddresses"></a>

```typescript
public readonly attrReplicationInstancePrivateIpAddresses: string;
```

- *Type:* string

One or more private IP addresses for the replication instance.

---

##### `attrReplicationInstancePublicIpAddresses`<sup>Required</sup> <a name="attrReplicationInstancePublicIpAddresses" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.attrReplicationInstancePublicIpAddresses"></a>

```typescript
public readonly attrReplicationInstancePublicIpAddresses: string;
```

- *Type:* string

One or more public IP addresses for the replication instance.

---

##### `replicationInstanceRef`<sup>Required</sup> <a name="replicationInstanceRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.replicationInstanceRef"></a>

```typescript
public readonly replicationInstanceRef: ReplicationInstanceReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_dms.ReplicationInstanceReference

A reference to a ReplicationInstance resource.

---

##### `tags`<sup>Required</sup> <a name="tags" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.tags"></a>

```typescript
public readonly tags: TagManager;
```

- *Type:* aws-cdk-lib.TagManager

Tag Manager which manages the tags for this resource.

---

##### `replicationInstanceClass`<sup>Required</sup> <a name="replicationInstanceClass" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.replicationInstanceClass"></a>

```typescript
public readonly replicationInstanceClass: string;
```

- *Type:* string

The compute and memory capacity of the replication instance as defined for the specified replication instance class.

---

##### `allocatedStorage`<sup>Optional</sup> <a name="allocatedStorage" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.allocatedStorage"></a>

```typescript
public readonly allocatedStorage: number;
```

- *Type:* number

The amount of storage (in gigabytes) to be initially allocated for the replication instance.

---

##### `allowMajorVersionUpgrade`<sup>Optional</sup> <a name="allowMajorVersionUpgrade" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.allowMajorVersionUpgrade"></a>

```typescript
public readonly allowMajorVersionUpgrade: boolean | IResolvable;
```

- *Type:* boolean | aws-cdk-lib.IResolvable

Indicates that major version upgrades are allowed.

---

##### `autoMinorVersionUpgrade`<sup>Optional</sup> <a name="autoMinorVersionUpgrade" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.autoMinorVersionUpgrade"></a>

```typescript
public readonly autoMinorVersionUpgrade: boolean | IResolvable;
```

- *Type:* boolean | aws-cdk-lib.IResolvable

A value that indicates whether minor engine upgrades are applied automatically to the replication instance during the maintenance window.

---

##### `availabilityZone`<sup>Optional</sup> <a name="availabilityZone" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.availabilityZone"></a>

```typescript
public readonly availabilityZone: string;
```

- *Type:* string

The Availability Zone that the replication instance will be created in.

---

##### `dnsNameServers`<sup>Optional</sup> <a name="dnsNameServers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.dnsNameServers"></a>

```typescript
public readonly dnsNameServers: string;
```

- *Type:* string

A list of custom DNS name servers supported for the replication instance to access your on-premise source or target database.

---

##### `engineVersion`<sup>Optional</sup> <a name="engineVersion" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.engineVersion"></a>

```typescript
public readonly engineVersion: string;
```

- *Type:* string

The engine version number of the replication instance.

---

##### `kmsKeyId`<sup>Optional</sup> <a name="kmsKeyId" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.kmsKeyId"></a>

```typescript
public readonly kmsKeyId: string;
```

- *Type:* string

An AWS  key identifier that is used to encrypt the data on the replication instance.

---

##### `multiAz`<sup>Optional</sup> <a name="multiAz" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.multiAz"></a>

```typescript
public readonly multiAz: boolean | IResolvable;
```

- *Type:* boolean | aws-cdk-lib.IResolvable

Specifies whether the replication instance is a Multi-AZ deployment.

---

##### `networkType`<sup>Optional</sup> <a name="networkType" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.networkType"></a>

```typescript
public readonly networkType: string;
```

- *Type:* string

The type of IP address protocol used by a replication instance, such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing.

---

##### `preferredMaintenanceWindow`<sup>Optional</sup> <a name="preferredMaintenanceWindow" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.preferredMaintenanceWindow"></a>

```typescript
public readonly preferredMaintenanceWindow: string;
```

- *Type:* string

The weekly time range during which system maintenance can occur, in UTC.

---

##### `publiclyAccessible`<sup>Optional</sup> <a name="publiclyAccessible" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.publiclyAccessible"></a>

```typescript
public readonly publiclyAccessible: boolean | IResolvable;
```

- *Type:* boolean | aws-cdk-lib.IResolvable

Specifies the accessibility options for the replication instance.

---

##### `replicationInstanceIdentifier`<sup>Optional</sup> <a name="replicationInstanceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.replicationInstanceIdentifier"></a>

```typescript
public readonly replicationInstanceIdentifier: string;
```

- *Type:* string

The replication instance identifier.

This parameter is stored as a lowercase string.

---

##### `replicationSubnetGroupIdentifier`<sup>Optional</sup> <a name="replicationSubnetGroupIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.replicationSubnetGroupIdentifier"></a>

```typescript
public readonly replicationSubnetGroupIdentifier: string;
```

- *Type:* string

A subnet group to associate with the replication instance.

---

##### `resourceIdentifier`<sup>Optional</sup> <a name="resourceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.resourceIdentifier"></a>

```typescript
public readonly resourceIdentifier: string;
```

- *Type:* string

A display name for the resource identifier at the end of the `EndpointArn` response parameter that is returned in the created `Endpoint` object.

---

##### `tagsRaw`<sup>Optional</sup> <a name="tagsRaw" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.tagsRaw"></a>

```typescript
public readonly tagsRaw: CfnTag[];
```

- *Type:* aws-cdk-lib.CfnTag[]

One or more tags to be assigned to the replication instance.

---

##### `vpcSecurityGroupIds`<sup>Optional</sup> <a name="vpcSecurityGroupIds" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.vpcSecurityGroupIds"></a>

```typescript
public readonly vpcSecurityGroupIds: string[];
```

- *Type:* string[]

Specifies the virtual private cloud (VPC) security group to be used with the replication instance.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.CFN_RESOURCE_TYPE_NAME">CFN_RESOURCE_TYPE_NAME</a></code> | <code>string</code> | The CloudFormation resource type name for this resource class. |

---

##### `CFN_RESOURCE_TYPE_NAME`<sup>Required</sup> <a name="CFN_RESOURCE_TYPE_NAME" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationInstance.property.CFN_RESOURCE_TYPE_NAME"></a>

```typescript
public readonly CFN_RESOURCE_TYPE_NAME: string;
```

- *Type:* string

The CloudFormation resource type name for this resource class.

---

### ReplicationTask <a name="ReplicationTask" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask"></a>

An extension for the CfnReplicationTask construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.Initializer"></a>

```typescript
import { ReplicationTask } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ReplicationTask(scope: Construct, id: string, props: ReplicationTaskProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps">ReplicationTaskProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps">ReplicationTaskProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.overrideLogicalId">overrideLogicalId</a></code> | Overrides the auto-generated logical ID with a specific ID. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addDeletionOverride">addDeletionOverride</a></code> | Syntactic sugar for `addOverride(path, undefined)`. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addDependency">addDependency</a></code> | Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addDependsOn">addDependsOn</a></code> | Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addMetadata">addMetadata</a></code> | Add a value to the CloudFormation Resource Metadata. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addOverride">addOverride</a></code> | Adds an override to the synthesized CloudFormation resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addPropertyDeletionOverride">addPropertyDeletionOverride</a></code> | Adds an override that deletes the value of a property from the resource definition. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addPropertyOverride">addPropertyOverride</a></code> | Adds an override to a resource property. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.applyRemovalPolicy">applyRemovalPolicy</a></code> | Sets the deletion policy of the resource based on the removal policy specified. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.getAtt">getAtt</a></code> | Returns a token for an runtime attribute of this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.getMetadata">getMetadata</a></code> | Retrieve a value value from the CloudFormation Resource Metadata. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.obtainDependencies">obtainDependencies</a></code> | Retrieves an array of resources this resource depends on. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.obtainResourceDependencies">obtainResourceDependencies</a></code> | Get a shallow copy of dependencies between this resource and other resources in the same stack. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.removeDependency">removeDependency</a></code> | Indicates that this resource no longer depends on another resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.replaceDependency">replaceDependency</a></code> | Replaces one dependency with another. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.inspect">inspect</a></code> | Examines the CloudFormation resource and discloses attributes. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.alarmCdcLatencySource">alarmCdcLatencySource</a></code> | Creates an alarm that monitors the CDC latency from the source for the Replication Task. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.alarmCdcLatencyTarget">alarmCdcLatencyTarget</a></code> | Creates an alarm that monitors the CDC latency to the target for the Replication Task. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the DMS Replication Task. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `overrideLogicalId` <a name="overrideLogicalId" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.overrideLogicalId"></a>

```typescript
public overrideLogicalId(newLogicalId: string): void
```

Overrides the auto-generated logical ID with a specific ID.

###### `newLogicalId`<sup>Required</sup> <a name="newLogicalId" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.overrideLogicalId.parameter.newLogicalId"></a>

- *Type:* string

The new logical ID to use for this stack element.

---

##### `addDeletionOverride` <a name="addDeletionOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addDeletionOverride"></a>

```typescript
public addDeletionOverride(path: string): void
```

Syntactic sugar for `addOverride(path, undefined)`.

###### `path`<sup>Required</sup> <a name="path" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addDeletionOverride.parameter.path"></a>

- *Type:* string

The path of the value to delete.

---

##### `addDependency` <a name="addDependency" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addDependency"></a>

```typescript
public addDependency(target: CfnResource): void
```

Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.

This can be used for resources across stacks (or nested stack) boundaries
and the dependency will automatically be transferred to the relevant scope.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addDependency.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

---

##### ~~`addDependsOn`~~ <a name="addDependsOn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addDependsOn"></a>

```typescript
public addDependsOn(target: CfnResource): void
```

Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addDependsOn.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

---

##### `addMetadata` <a name="addMetadata" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addMetadata"></a>

```typescript
public addMetadata(key: string, value: any): void
```

Add a value to the CloudFormation Resource Metadata.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.)

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addMetadata.parameter.key"></a>

- *Type:* string

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addMetadata.parameter.value"></a>

- *Type:* any

---

##### `addOverride` <a name="addOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addOverride"></a>

```typescript
public addOverride(path: string, value: any): void
```

Adds an override to the synthesized CloudFormation resource.

To add a
property override, either use `addPropertyOverride` or prefix `path` with
"Properties." (i.e. `Properties.TopicName`).

If the override is nested, separate each nested level using a dot (.) in the path parameter.
If there is an array as part of the nesting, specify the index in the path.

To include a literal `.` in the property name, prefix with a `\`. In most
programming languages you will need to write this as `"\\."` because the
`\` itself will need to be escaped.

For example,
```typescript
cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
```
would add the overrides
```json
"Properties": {
  "GlobalSecondaryIndexes": [
    {
      "Projection": {
        "NonKeyAttributes": [ "myattribute" ]
        ...
      }
      ...
    },
    {
      "ProjectionType": "INCLUDE"
      ...
    },
  ]
  ...
}
```

The `value` argument to `addOverride` will not be processed or translated
in any way. Pass raw JSON values in here with the correct capitalization
for CloudFormation. If you pass CDK classes or structs, they will be
rendered with lowercased key names, and CloudFormation will reject the
template.

###### `path`<sup>Required</sup> <a name="path" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addOverride.parameter.path"></a>

- *Type:* string

The path of the property, you can use dot notation to override values in complex types.

Any intermediate keys
will be created as needed.

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addOverride.parameter.value"></a>

- *Type:* any

The value.

Could be primitive or complex.

---

##### `addPropertyDeletionOverride` <a name="addPropertyDeletionOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addPropertyDeletionOverride"></a>

```typescript
public addPropertyDeletionOverride(propertyPath: string): void
```

Adds an override that deletes the value of a property from the resource definition.

###### `propertyPath`<sup>Required</sup> <a name="propertyPath" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addPropertyDeletionOverride.parameter.propertyPath"></a>

- *Type:* string

The path to the property.

---

##### `addPropertyOverride` <a name="addPropertyOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addPropertyOverride"></a>

```typescript
public addPropertyOverride(propertyPath: string, value: any): void
```

Adds an override to a resource property.

Syntactic sugar for `addOverride("Properties.<...>", value)`.

###### `propertyPath`<sup>Required</sup> <a name="propertyPath" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addPropertyOverride.parameter.propertyPath"></a>

- *Type:* string

The path of the property.

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.addPropertyOverride.parameter.value"></a>

- *Type:* any

The value.

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy?: RemovalPolicy, options?: RemovalPolicyOptions): void
```

Sets the deletion policy of the resource based on the removal policy specified.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
cases, a snapshot can be taken of the resource prior to deletion
(`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
can be found in the following link:

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options)

###### `policy`<sup>Optional</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.applyRemovalPolicy.parameter.options"></a>

- *Type:* aws-cdk-lib.RemovalPolicyOptions

---

##### `getAtt` <a name="getAtt" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.getAtt"></a>

```typescript
public getAtt(attributeName: string, typeHint?: ResolutionTypeHint): Reference
```

Returns a token for an runtime attribute of this resource.

Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
in case there is no generated attribute.

###### `attributeName`<sup>Required</sup> <a name="attributeName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.getAtt.parameter.attributeName"></a>

- *Type:* string

The name of the attribute.

---

###### `typeHint`<sup>Optional</sup> <a name="typeHint" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.getAtt.parameter.typeHint"></a>

- *Type:* aws-cdk-lib.ResolutionTypeHint

---

##### `getMetadata` <a name="getMetadata" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.getMetadata"></a>

```typescript
public getMetadata(key: string): any
```

Retrieve a value value from the CloudFormation Resource Metadata.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.)

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.getMetadata.parameter.key"></a>

- *Type:* string

---

##### `obtainDependencies` <a name="obtainDependencies" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.obtainDependencies"></a>

```typescript
public obtainDependencies(): (Stack | CfnResource)[]
```

Retrieves an array of resources this resource depends on.

This assembles dependencies on resources across stacks (including nested stacks)
automatically.

##### `obtainResourceDependencies` <a name="obtainResourceDependencies" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.obtainResourceDependencies"></a>

```typescript
public obtainResourceDependencies(): CfnResource[]
```

Get a shallow copy of dependencies between this resource and other resources in the same stack.

##### `removeDependency` <a name="removeDependency" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.removeDependency"></a>

```typescript
public removeDependency(target: CfnResource): void
```

Indicates that this resource no longer depends on another resource.

This can be used for resources across stacks (including nested stacks)
and the dependency will automatically be removed from the relevant scope.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.removeDependency.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

---

##### `replaceDependency` <a name="replaceDependency" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.replaceDependency"></a>

```typescript
public replaceDependency(target: CfnResource, newTarget: CfnResource): void
```

Replaces one dependency with another.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.replaceDependency.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

The dependency to replace.

---

###### `newTarget`<sup>Required</sup> <a name="newTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.replaceDependency.parameter.newTarget"></a>

- *Type:* aws-cdk-lib.CfnResource

The new dependency to add.

---

##### `inspect` <a name="inspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.inspect"></a>

```typescript
public inspect(inspector: TreeInspector): void
```

Examines the CloudFormation resource and discloses attributes.

###### `inspector`<sup>Required</sup> <a name="inspector" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.inspect.parameter.inspector"></a>

- *Type:* aws-cdk-lib.TreeInspector

tree inspector to collect and process attributes.

---

##### `alarmCdcLatencySource` <a name="alarmCdcLatencySource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.alarmCdcLatencySource"></a>

```typescript
public alarmCdcLatencySource(props?: DmsCdcLatencySourceAlarmConfig): DmsReplicationTaskCdcLatencySourceAlarm
```

Creates an alarm that monitors the CDC latency from the source for the Replication Task.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.alarmCdcLatencySource.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig">DmsCdcLatencySourceAlarmConfig</a>

---

##### `alarmCdcLatencyTarget` <a name="alarmCdcLatencyTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.alarmCdcLatencyTarget"></a>

```typescript
public alarmCdcLatencyTarget(props?: DmsCdcLatencyTargetAlarmConfig): DmsReplicationTaskCdcLatencyTargetAlarm
```

Creates an alarm that monitors the CDC latency to the target for the Replication Task.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.alarmCdcLatencyTarget.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig">DmsCdcLatencyTargetAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props?: DmsReplicationTaskRecommendedAlarmsConfig): DmsReplicationTaskRecommendedAlarms
```

Creates the recommended alarms for the DMS Replication Task.

> [https://aws.amazon.com/blogs/database/setting-up-amazon-cloudwatch-alarms-for-aws-dms-resources-using-the-aws-cli/](https://aws.amazon.com/blogs/database/setting-up-amazon-cloudwatch-alarms-for-aws-dms-resources-using-the-aws-cli/)

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig">DmsReplicationTaskRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.isCfnElement">isCfnElement</a></code> | Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.isCfnResource">isCfnResource</a></code> | Check whether the given object is a CfnResource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.isCfnReplicationTask">isCfnReplicationTask</a></code> | Checks whether the given object is a CfnReplicationTask. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.isConstruct"></a>

```typescript
import { ReplicationTask } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ReplicationTask.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isCfnElement` <a name="isCfnElement" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.isCfnElement"></a>

```typescript
import { ReplicationTask } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ReplicationTask.isCfnElement(x: any)
```

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different
versions of this library to be included in the same stack.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.isCfnElement.parameter.x"></a>

- *Type:* any

---

##### `isCfnResource` <a name="isCfnResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.isCfnResource"></a>

```typescript
import { ReplicationTask } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ReplicationTask.isCfnResource(x: any)
```

Check whether the given object is a CfnResource.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.isCfnResource.parameter.x"></a>

- *Type:* any

---

##### `isCfnReplicationTask` <a name="isCfnReplicationTask" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.isCfnReplicationTask"></a>

```typescript
import { ReplicationTask } from '@renovosolutions/cdk-library-cloudwatch-alarms'

ReplicationTask.isCfnReplicationTask(x: any)
```

Checks whether the given object is a CfnReplicationTask.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.isCfnReplicationTask.parameter.x"></a>

- *Type:* any

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.creationStack">creationStack</a></code> | <code>string[]</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.logicalId">logicalId</a></code> | <code>string</code> | The logical ID for this CloudFormation stack element. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this element is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.ref">ref</a></code> | <code>string</code> | Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.cfnOptions">cfnOptions</a></code> | <code>aws-cdk-lib.ICfnResourceOptions</code> | Options for this resource, such as condition, update policy etc. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.cfnResourceType">cfnResourceType</a></code> | <code>string</code> | AWS resource type. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.attrId">attrId</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.replicationTaskRef">replicationTaskRef</a></code> | <code>aws-cdk-lib.interfaces.aws_dms.ReplicationTaskReference</code> | A reference to a ReplicationTask resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.tags">tags</a></code> | <code>aws-cdk-lib.TagManager</code> | Tag Manager which manages the tags for this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.migrationType">migrationType</a></code> | <code>string</code> | The migration type. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.replicationInstanceArn">replicationInstanceArn</a></code> | <code>string</code> | The Amazon Resource Name (ARN) of a replication instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.sourceEndpointArn">sourceEndpointArn</a></code> | <code>string</code> | An Amazon Resource Name (ARN) that uniquely identifies the source endpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.tableMappings">tableMappings</a></code> | <code>string</code> | The table mappings for the task, in JSON format. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.targetEndpointArn">targetEndpointArn</a></code> | <code>string</code> | An Amazon Resource Name (ARN) that uniquely identifies the target endpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.cdcStartPosition">cdcStartPosition</a></code> | <code>string</code> | Indicates when you want a change data capture (CDC) operation to start. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.cdcStartTime">cdcStartTime</a></code> | <code>number</code> | Indicates the start time for a change data capture (CDC) operation. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.cdcStopPosition">cdcStopPosition</a></code> | <code>string</code> | Indicates when you want a change data capture (CDC) operation to stop. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.replicationTaskIdentifier">replicationTaskIdentifier</a></code> | <code>string</code> | An identifier for the replication task. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.replicationTaskSettings">replicationTaskSettings</a></code> | <code>string</code> | Overall settings for the task, in JSON format. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.resourceIdentifier">resourceIdentifier</a></code> | <code>string</code> | A display name for the resource identifier at the end of the `EndpointArn` response parameter that is returned in the created `Endpoint` object. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.tagsRaw">tagsRaw</a></code> | <code>aws-cdk-lib.CfnTag[]</code> | One or more tags to be assigned to the replication task. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.taskData">taskData</a></code> | <code>string</code> | Supplemental information that the task requires to migrate the data for certain source and target endpoints. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.replicationInstanceIdentifier">replicationInstanceIdentifier</a></code> | <code>string</code> | *No description.* |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `creationStack`<sup>Required</sup> <a name="creationStack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.creationStack"></a>

```typescript
public readonly creationStack: string[];
```

- *Type:* string[]

---

##### `logicalId`<sup>Required</sup> <a name="logicalId" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.logicalId"></a>

```typescript
public readonly logicalId: string;
```

- *Type:* string

The logical ID for this CloudFormation stack element.

The logical ID of the element
is calculated from the path of the resource node in the construct tree.

To override this value, use `overrideLogicalId(newLogicalId)`.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this element is defined.

CfnElements must be defined within a stack scope (directly or indirectly).

---

##### `ref`<sup>Required</sup> <a name="ref" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.ref"></a>

```typescript
public readonly ref: string;
```

- *Type:* string

Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.

If, by any chance, the intrinsic reference of a resource is not a string, you could
coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.

---

##### `cfnOptions`<sup>Required</sup> <a name="cfnOptions" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.cfnOptions"></a>

```typescript
public readonly cfnOptions: ICfnResourceOptions;
```

- *Type:* aws-cdk-lib.ICfnResourceOptions

Options for this resource, such as condition, update policy etc.

---

##### `cfnResourceType`<sup>Required</sup> <a name="cfnResourceType" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.cfnResourceType"></a>

```typescript
public readonly cfnResourceType: string;
```

- *Type:* string

AWS resource type.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

---

##### `attrId`<sup>Required</sup> <a name="attrId" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.attrId"></a>

```typescript
public readonly attrId: string;
```

- *Type:* string

---

##### `replicationTaskRef`<sup>Required</sup> <a name="replicationTaskRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.replicationTaskRef"></a>

```typescript
public readonly replicationTaskRef: ReplicationTaskReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_dms.ReplicationTaskReference

A reference to a ReplicationTask resource.

---

##### `tags`<sup>Required</sup> <a name="tags" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.tags"></a>

```typescript
public readonly tags: TagManager;
```

- *Type:* aws-cdk-lib.TagManager

Tag Manager which manages the tags for this resource.

---

##### `migrationType`<sup>Required</sup> <a name="migrationType" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.migrationType"></a>

```typescript
public readonly migrationType: string;
```

- *Type:* string

The migration type.

---

##### `replicationInstanceArn`<sup>Required</sup> <a name="replicationInstanceArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.replicationInstanceArn"></a>

```typescript
public readonly replicationInstanceArn: string;
```

- *Type:* string

The Amazon Resource Name (ARN) of a replication instance.

---

##### `sourceEndpointArn`<sup>Required</sup> <a name="sourceEndpointArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.sourceEndpointArn"></a>

```typescript
public readonly sourceEndpointArn: string;
```

- *Type:* string

An Amazon Resource Name (ARN) that uniquely identifies the source endpoint.

---

##### `tableMappings`<sup>Required</sup> <a name="tableMappings" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.tableMappings"></a>

```typescript
public readonly tableMappings: string;
```

- *Type:* string

The table mappings for the task, in JSON format.

---

##### `targetEndpointArn`<sup>Required</sup> <a name="targetEndpointArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.targetEndpointArn"></a>

```typescript
public readonly targetEndpointArn: string;
```

- *Type:* string

An Amazon Resource Name (ARN) that uniquely identifies the target endpoint.

---

##### `cdcStartPosition`<sup>Optional</sup> <a name="cdcStartPosition" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.cdcStartPosition"></a>

```typescript
public readonly cdcStartPosition: string;
```

- *Type:* string

Indicates when you want a change data capture (CDC) operation to start.

---

##### `cdcStartTime`<sup>Optional</sup> <a name="cdcStartTime" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.cdcStartTime"></a>

```typescript
public readonly cdcStartTime: number;
```

- *Type:* number

Indicates the start time for a change data capture (CDC) operation.

---

##### `cdcStopPosition`<sup>Optional</sup> <a name="cdcStopPosition" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.cdcStopPosition"></a>

```typescript
public readonly cdcStopPosition: string;
```

- *Type:* string

Indicates when you want a change data capture (CDC) operation to stop.

---

##### `replicationTaskIdentifier`<sup>Optional</sup> <a name="replicationTaskIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.replicationTaskIdentifier"></a>

```typescript
public readonly replicationTaskIdentifier: string;
```

- *Type:* string

An identifier for the replication task.

---

##### `replicationTaskSettings`<sup>Optional</sup> <a name="replicationTaskSettings" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.replicationTaskSettings"></a>

```typescript
public readonly replicationTaskSettings: string;
```

- *Type:* string

Overall settings for the task, in JSON format.

---

##### `resourceIdentifier`<sup>Optional</sup> <a name="resourceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.resourceIdentifier"></a>

```typescript
public readonly resourceIdentifier: string;
```

- *Type:* string

A display name for the resource identifier at the end of the `EndpointArn` response parameter that is returned in the created `Endpoint` object.

---

##### `tagsRaw`<sup>Optional</sup> <a name="tagsRaw" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.tagsRaw"></a>

```typescript
public readonly tagsRaw: CfnTag[];
```

- *Type:* aws-cdk-lib.CfnTag[]

One or more tags to be assigned to the replication task.

---

##### `taskData`<sup>Optional</sup> <a name="taskData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.taskData"></a>

```typescript
public readonly taskData: string;
```

- *Type:* string

Supplemental information that the task requires to migrate the data for certain source and target endpoints.

---

##### `replicationInstanceIdentifier`<sup>Required</sup> <a name="replicationInstanceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.replicationInstanceIdentifier"></a>

```typescript
public readonly replicationInstanceIdentifier: string;
```

- *Type:* string

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.CFN_RESOURCE_TYPE_NAME">CFN_RESOURCE_TYPE_NAME</a></code> | <code>string</code> | The CloudFormation resource type name for this resource class. |

---

##### `CFN_RESOURCE_TYPE_NAME`<sup>Required</sup> <a name="CFN_RESOURCE_TYPE_NAME" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask.property.CFN_RESOURCE_TYPE_NAME"></a>

```typescript
public readonly CFN_RESOURCE_TYPE_NAME: string;
```

- *Type:* string

The CloudFormation resource type name for this resource class.

---

### RestApi <a name="RestApi" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi"></a>

An extension for the RestApi construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.Initializer"></a>

```typescript
import { RestApi } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RestApi(scope: Construct, id: string, props: RestApiBaseProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_apigateway.RestApiBaseProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_apigateway.RestApiBaseProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addApiKey">addApiKey</a></code> | Add an ApiKey to the deploymentStage. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addDomainName">addDomainName</a></code> | Defines an API Gateway domain name and maps it to this API. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addGatewayResponse">addGatewayResponse</a></code> | Adds a new gateway response. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addToResourcePolicy">addToResourcePolicy</a></code> | Adds a statement to the resource policy associated with this rest api. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addUsagePlan">addUsagePlan</a></code> | Adds a usage plan. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.arnForExecuteApi">arnForExecuteApi</a></code> | Gets the "execute-api" ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.grantInvokeFromVpcEndpointsOnly">grantInvokeFromVpcEndpointsOnly</a></code> | Add a resource policy that only allows API execution from a VPC Endpoint to create a private API. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metric">metric</a></code> | Returns the given named metric for this API. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricCacheHitCount">metricCacheHitCount</a></code> | Metric for the number of requests served from the API cache in a given period. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricCacheMissCount">metricCacheMissCount</a></code> | Metric for the number of requests served from the backend in a given period, when API caching is enabled. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricClientError">metricClientError</a></code> | Metric for the number of client-side errors captured in a given period. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricCount">metricCount</a></code> | Metric for the total number API requests in a given period. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricIntegrationLatency">metricIntegrationLatency</a></code> | Metric for the time between when API Gateway relays a request to the backend and when it receives a response from the backend. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricLatency">metricLatency</a></code> | The time between when API Gateway receives a request from a client and when it returns a response to the client. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricServerError">metricServerError</a></code> | Metric for the number of server-side errors captured in a given period. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.urlForPath">urlForPath</a></code> | Returns the URL for an HTTP path. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addModel">addModel</a></code> | Adds a new model. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addRequestValidator">addRequestValidator</a></code> | Adds a new request validator. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarm4XXError">alarm4XXError</a></code> | Creates an alarm that monitors the number of client-side errors captured in a given period. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarm5XXError">alarm5XXError</a></code> | Creates an alarm that monitors the number of server-side errors captured in a given period. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarmCountAnomaly">alarmCountAnomaly</a></code> | Creates an anomaly detection alarm on the Count metric. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarmDetailedLatency">alarmDetailedLatency</a></code> | Creates a list of alarms the time between when API Gateway receives a request from a client and when it returns a response to the client for the methods and resources specified. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarmIntegrationLatencyAnomaly">alarmIntegrationLatencyAnomaly</a></code> | Creates an anomaly detection alarm on the IntegrationLatency metric. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarmLatency">alarmLatency</a></code> | Creates an alarm that monitors the time between when API Gateway receives a request from a client and when it returns a response to the client. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarmLatencyAnomaly">alarmLatencyAnomaly</a></code> | Creates an anomaly detection alarm on the Latency metric. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the ApiGateway api. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addApiKey` <a name="addApiKey" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addApiKey"></a>

```typescript
public addApiKey(id: string, options?: ApiKeyOptions): IApiKey
```

Add an ApiKey to the deploymentStage.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addApiKey.parameter.id"></a>

- *Type:* string

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addApiKey.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_apigateway.ApiKeyOptions

---

##### `addDomainName` <a name="addDomainName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addDomainName"></a>

```typescript
public addDomainName(id: string, options: DomainNameOptions): DomainName
```

Defines an API Gateway domain name and maps it to this API.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addDomainName.parameter.id"></a>

- *Type:* string

The construct id.

---

###### `options`<sup>Required</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addDomainName.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_apigateway.DomainNameOptions

custom domain options.

---

##### `addGatewayResponse` <a name="addGatewayResponse" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addGatewayResponse"></a>

```typescript
public addGatewayResponse(id: string, options: GatewayResponseOptions): GatewayResponse
```

Adds a new gateway response.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addGatewayResponse.parameter.id"></a>

- *Type:* string

---

###### `options`<sup>Required</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addGatewayResponse.parameter.options"></a>

- *Type:* aws-cdk-lib.aws_apigateway.GatewayResponseOptions

---

##### `addToResourcePolicy` <a name="addToResourcePolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addToResourcePolicy"></a>

```typescript
public addToResourcePolicy(statement: PolicyStatement): AddToResourcePolicyResult
```

Adds a statement to the resource policy associated with this rest api.

A resource policy will be automatically created upon the first call to `addToResourcePolicy`.

Note that this does not work with imported rest api.

###### `statement`<sup>Required</sup> <a name="statement" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addToResourcePolicy.parameter.statement"></a>

- *Type:* aws-cdk-lib.aws_iam.PolicyStatement

The policy statement to add.

---

##### `addUsagePlan` <a name="addUsagePlan" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addUsagePlan"></a>

```typescript
public addUsagePlan(id: string, props?: UsagePlanProps): UsagePlan
```

Adds a usage plan.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addUsagePlan.parameter.id"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addUsagePlan.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_apigateway.UsagePlanProps

---

##### `arnForExecuteApi` <a name="arnForExecuteApi" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.arnForExecuteApi"></a>

```typescript
public arnForExecuteApi(method?: string, path?: string, stage?: string): string
```

Gets the "execute-api" ARN.

###### `method`<sup>Optional</sup> <a name="method" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.arnForExecuteApi.parameter.method"></a>

- *Type:* string

---

###### `path`<sup>Optional</sup> <a name="path" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.arnForExecuteApi.parameter.path"></a>

- *Type:* string

---

###### `stage`<sup>Optional</sup> <a name="stage" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.arnForExecuteApi.parameter.stage"></a>

- *Type:* string

---

##### `grantInvokeFromVpcEndpointsOnly` <a name="grantInvokeFromVpcEndpointsOnly" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.grantInvokeFromVpcEndpointsOnly"></a>

```typescript
public grantInvokeFromVpcEndpointsOnly(vpcEndpoints: IVpcEndpoint[]): void
```

Add a resource policy that only allows API execution from a VPC Endpoint to create a private API.

> [https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-resource-policies-examples.html#apigateway-resource-policies-source-vpc-example](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-resource-policies-examples.html#apigateway-resource-policies-source-vpc-example)

###### `vpcEndpoints`<sup>Required</sup> <a name="vpcEndpoints" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.grantInvokeFromVpcEndpointsOnly.parameter.vpcEndpoints"></a>

- *Type:* aws-cdk-lib.aws_ec2.IVpcEndpoint[]

the interface VPC endpoints to grant access to.

---

##### `metric` <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metric"></a>

```typescript
public metric(metricName: string, props?: MetricOptions): Metric
```

Returns the given named metric for this API.

###### `metricName`<sup>Required</sup> <a name="metricName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metric.parameter.metricName"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metric.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricCacheHitCount` <a name="metricCacheHitCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricCacheHitCount"></a>

```typescript
public metricCacheHitCount(props?: MetricOptions): Metric
```

Metric for the number of requests served from the API cache in a given period.

Default: sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricCacheHitCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricCacheMissCount` <a name="metricCacheMissCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricCacheMissCount"></a>

```typescript
public metricCacheMissCount(props?: MetricOptions): Metric
```

Metric for the number of requests served from the backend in a given period, when API caching is enabled.

Default: sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricCacheMissCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricClientError` <a name="metricClientError" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricClientError"></a>

```typescript
public metricClientError(props?: MetricOptions): Metric
```

Metric for the number of client-side errors captured in a given period.

Default: sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricClientError.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricCount` <a name="metricCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricCount"></a>

```typescript
public metricCount(props?: MetricOptions): Metric
```

Metric for the total number API requests in a given period.

Default: sample count over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricCount.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricIntegrationLatency` <a name="metricIntegrationLatency" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricIntegrationLatency"></a>

```typescript
public metricIntegrationLatency(props?: MetricOptions): Metric
```

Metric for the time between when API Gateway relays a request to the backend and when it receives a response from the backend.

Default: average over 5 minutes.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricIntegrationLatency.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricLatency` <a name="metricLatency" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricLatency"></a>

```typescript
public metricLatency(props?: MetricOptions): Metric
```

The time between when API Gateway receives a request from a client and when it returns a response to the client.

The latency includes the integration latency and other API Gateway overhead.

Default: average over 5 minutes.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricLatency.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricServerError` <a name="metricServerError" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricServerError"></a>

```typescript
public metricServerError(props?: MetricOptions): Metric
```

Metric for the number of server-side errors captured in a given period.

Default: sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.metricServerError.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `urlForPath` <a name="urlForPath" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.urlForPath"></a>

```typescript
public urlForPath(path?: string): string
```

Returns the URL for an HTTP path.

Fails if `deploymentStage` is not set either by `deploy` or explicitly.

###### `path`<sup>Optional</sup> <a name="path" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.urlForPath.parameter.path"></a>

- *Type:* string

---

##### `addModel` <a name="addModel" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addModel"></a>

```typescript
public addModel(id: string, props: ModelOptions): Model
```

Adds a new model.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addModel.parameter.id"></a>

- *Type:* string

---

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addModel.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_apigateway.ModelOptions

---

##### `addRequestValidator` <a name="addRequestValidator" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addRequestValidator"></a>

```typescript
public addRequestValidator(id: string, props: RequestValidatorOptions): RequestValidator
```

Adds a new request validator.

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addRequestValidator.parameter.id"></a>

- *Type:* string

---

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.addRequestValidator.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_apigateway.RequestValidatorOptions

---

##### `alarm4XXError` <a name="alarm4XXError" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarm4XXError"></a>

```typescript
public alarm4XXError(props: ApiGateway4XXErrorAlarmConfig): ApiGatewayRestApi4XXErrorAlarm
```

Creates an alarm that monitors the number of client-side errors captured in a given period.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarm4XXError.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig">ApiGateway4XXErrorAlarmConfig</a>

---

##### `alarm5XXError` <a name="alarm5XXError" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarm5XXError"></a>

```typescript
public alarm5XXError(props: ApiGateway5XXErrorAlarmConfig): ApiGatewayRestApi5XXErrorAlarm
```

Creates an alarm that monitors the number of server-side errors captured in a given period.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarm5XXError.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig">ApiGateway5XXErrorAlarmConfig</a>

---

##### `alarmCountAnomaly` <a name="alarmCountAnomaly" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarmCountAnomaly"></a>

```typescript
public alarmCountAnomaly(props?: ApiGatewayCountAnomalyAlarmConfig): ApiGatewayRestApiCountAnomalyAlarm
```

Creates an anomaly detection alarm on the Count metric.

By default detects both
unexpected traffic drops and spikes for low-traffic APIs where a static count
threshold is hard to pick.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarmCountAnomaly.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig">ApiGatewayCountAnomalyAlarmConfig</a>

---

##### `alarmDetailedLatency` <a name="alarmDetailedLatency" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarmDetailedLatency"></a>

```typescript
public alarmDetailedLatency(props: ApiGatewayRestApiDetailedLatencyAlarmConfig[]): ApiGatewayRestApiDetailedLatencyAlarm[]
```

Creates a list of alarms the time between when API Gateway receives a request from a client and when it returns a response to the client for the methods and resources specified.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarmDetailedLatency.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig">ApiGatewayRestApiDetailedLatencyAlarmConfig</a>[]

---

##### `alarmIntegrationLatencyAnomaly` <a name="alarmIntegrationLatencyAnomaly" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarmIntegrationLatencyAnomaly"></a>

```typescript
public alarmIntegrationLatencyAnomaly(props?: ApiGatewayIntegrationLatencyAnomalyAlarmConfig): ApiGatewayRestApiIntegrationLatencyAnomalyAlarm
```

Creates an anomaly detection alarm on the IntegrationLatency metric.

Catches backend integration latency drift independently of API Gateway
overhead.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarmIntegrationLatencyAnomaly.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig">ApiGatewayIntegrationLatencyAnomalyAlarmConfig</a>

---

##### `alarmLatency` <a name="alarmLatency" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarmLatency"></a>

```typescript
public alarmLatency(props?: ApiGatewayLatencyAlarmConfig): ApiGatewayRestApiLatencyAlarm
```

Creates an alarm that monitors the time between when API Gateway receives a request from a client and when it returns a response to the client.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarmLatency.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig">ApiGatewayLatencyAlarmConfig</a>

---

##### `alarmLatencyAnomaly` <a name="alarmLatencyAnomaly" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarmLatencyAnomaly"></a>

```typescript
public alarmLatencyAnomaly(props?: ApiGatewayLatencyAnomalyAlarmConfig): ApiGatewayRestApiLatencyAnomalyAlarm
```

Creates an anomaly detection alarm on the Latency metric.

Detects drift in
total request latency without requiring a static threshold; intended to
coexist with the static `Latency` alarm.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.alarmLatencyAnomaly.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig">ApiGatewayLatencyAnomalyAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: ApiGatewayRestApiRecommendedAlarmsConfig): ApiGatewayRestApiRecommendedAlarms
```

Creates the recommended alarms for the ApiGateway api.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ApiGateway](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ApiGateway)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig">ApiGatewayRestApiRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.fromRestApiAttributes">fromRestApiAttributes</a></code> | Import an existing RestApi that can be configured with additional Methods and Resources. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.fromRestApiId">fromRestApiId</a></code> | Import an existing RestApi. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.isRestApi">isRestApi</a></code> | Return whether the given object is a `RestApi`. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.isConstruct"></a>

```typescript
import { RestApi } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RestApi.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.isOwnedResource"></a>

```typescript
import { RestApi } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RestApi.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.isResource"></a>

```typescript
import { RestApi } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RestApi.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromRestApiAttributes` <a name="fromRestApiAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.fromRestApiAttributes"></a>

```typescript
import { RestApi } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RestApi.fromRestApiAttributes(scope: Construct, id: string, attrs: RestApiAttributes)
```

Import an existing RestApi that can be configured with additional Methods and Resources.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.fromRestApiAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.fromRestApiAttributes.parameter.id"></a>

- *Type:* string

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.fromRestApiAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_apigateway.RestApiAttributes

---

##### `fromRestApiId` <a name="fromRestApiId" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.fromRestApiId"></a>

```typescript
import { RestApi } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RestApi.fromRestApiId(scope: Construct, id: string, restApiId: string)
```

Import an existing RestApi.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.fromRestApiId.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.fromRestApiId.parameter.id"></a>

- *Type:* string

---

###### `restApiId`<sup>Required</sup> <a name="restApiId" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.fromRestApiId.parameter.restApiId"></a>

- *Type:* string

---

##### `isRestApi` <a name="isRestApi" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.isRestApi"></a>

```typescript
import { RestApi } from '@renovosolutions/cdk-library-cloudwatch-alarms'

RestApi.isRestApi(x: any)
```

Return whether the given object is a `RestApi`.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.isRestApi.parameter.x"></a>

- *Type:* any

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.restApiId">restApiId</a></code> | <code>string</code> | The ID of this API Gateway RestApi. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.restApiName">restApiName</a></code> | <code>string</code> | A human friendly name for this Rest API. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.restApiRef">restApiRef</a></code> | <code>aws-cdk-lib.interfaces.aws_apigateway.RestApiReference</code> | A reference to a RestApi resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.restApiRootResourceId">restApiRootResourceId</a></code> | <code>string</code> | The resource ID of the root resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.root">root</a></code> | <code>aws-cdk-lib.aws_apigateway.IResource</code> | Represents the root resource of this API endpoint ('/'). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.url">url</a></code> | <code>string</code> | The deployed root URL of this REST API. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.domainName">domainName</a></code> | <code>aws-cdk-lib.aws_apigateway.DomainName</code> | The first domain name mapped to this API, if defined through the `domainName` configuration prop, or added via `addDomainName`. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.latestDeployment">latestDeployment</a></code> | <code>aws-cdk-lib.aws_apigateway.Deployment</code> | API Gateway deployment that represents the latest changes of the API. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.deploymentStage">deploymentStage</a></code> | <code>aws-cdk-lib.aws_apigateway.Stage</code> | API Gateway stage that points to the latest deployment (if defined). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.methods">methods</a></code> | <code>aws-cdk-lib.aws_apigateway.Method[]</code> | The list of methods bound to this RestApi. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `restApiId`<sup>Required</sup> <a name="restApiId" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.restApiId"></a>

```typescript
public readonly restApiId: string;
```

- *Type:* string

The ID of this API Gateway RestApi.

---

##### `restApiName`<sup>Required</sup> <a name="restApiName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.restApiName"></a>

```typescript
public readonly restApiName: string;
```

- *Type:* string

A human friendly name for this Rest API.

Note that this is different from `restApiId`.

---

##### `restApiRef`<sup>Required</sup> <a name="restApiRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.restApiRef"></a>

```typescript
public readonly restApiRef: RestApiReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_apigateway.RestApiReference

A reference to a RestApi resource.

---

##### `restApiRootResourceId`<sup>Required</sup> <a name="restApiRootResourceId" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.restApiRootResourceId"></a>

```typescript
public readonly restApiRootResourceId: string;
```

- *Type:* string

The resource ID of the root resource.

---

##### `root`<sup>Required</sup> <a name="root" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.root"></a>

```typescript
public readonly root: IResource;
```

- *Type:* aws-cdk-lib.aws_apigateway.IResource

Represents the root resource of this API endpoint ('/').

Resources and Methods are added to this resource.

---

##### `url`<sup>Required</sup> <a name="url" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.url"></a>

```typescript
public readonly url: string;
```

- *Type:* string

The deployed root URL of this REST API.

---

##### `domainName`<sup>Optional</sup> <a name="domainName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.domainName"></a>

```typescript
public readonly domainName: DomainName;
```

- *Type:* aws-cdk-lib.aws_apigateway.DomainName

The first domain name mapped to this API, if defined through the `domainName` configuration prop, or added via `addDomainName`.

---

##### `latestDeployment`<sup>Optional</sup> <a name="latestDeployment" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.latestDeployment"></a>

```typescript
public readonly latestDeployment: Deployment;
```

- *Type:* aws-cdk-lib.aws_apigateway.Deployment

API Gateway deployment that represents the latest changes of the API.

This resource will be automatically updated every time the REST API model changes.
This will be undefined if `deploy` is false.

---

##### `deploymentStage`<sup>Required</sup> <a name="deploymentStage" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.deploymentStage"></a>

```typescript
public readonly deploymentStage: Stage;
```

- *Type:* aws-cdk-lib.aws_apigateway.Stage

API Gateway stage that points to the latest deployment (if defined).

If `deploy` is disabled, you will need to explicitly assign this value in order to
set up integrations.

---

##### `methods`<sup>Required</sup> <a name="methods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.methods"></a>

```typescript
public readonly methods: Method[];
```

- *Type:* aws-cdk-lib.aws_apigateway.Method[]

The list of methods bound to this RestApi.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.RestApi.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### S3Bucket4xxErrorsAlarm <a name="S3Bucket4xxErrorsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm"></a>

An alarm that monitors the 4xx errors for an S3 bucket.

This alarm is used to create a baseline for typical 4xx error
rates so that you can look into any abnormalities that might
indicate a setup issue.

The alarm is triggered when the 4xx error rate exceeds the % threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.Initializer"></a>

```typescript
import { S3Bucket4xxErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new S3Bucket4xxErrorsAlarm(scope: IConstruct, id: string, props: S3Bucket4xxErrorsAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps">S3Bucket4xxErrorsAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps">S3Bucket4xxErrorsAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.isConstruct"></a>

```typescript
import { S3Bucket4xxErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

S3Bucket4xxErrorsAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.isOwnedResource"></a>

```typescript
import { S3Bucket4xxErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

S3Bucket4xxErrorsAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.isResource"></a>

```typescript
import { S3Bucket4xxErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

S3Bucket4xxErrorsAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.fromAlarmArn"></a>

```typescript
import { S3Bucket4xxErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

S3Bucket4xxErrorsAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.fromAlarmName"></a>

```typescript
import { S3Bucket4xxErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

S3Bucket4xxErrorsAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### S3Bucket5xxErrorsAlarm <a name="S3Bucket5xxErrorsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm"></a>

An alarm that monitors the 5xx errors for an S3 bucket.

This alarm can help to detect if the application is
experiencing issues due to 5xx errors.

The alarm is triggered when the 5xx error rate exceeds the % threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.Initializer"></a>

```typescript
import { S3Bucket5xxErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new S3Bucket5xxErrorsAlarm(scope: IConstruct, id: string, props: S3Bucket5xxErrorsAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps">S3Bucket5xxErrorsAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps">S3Bucket5xxErrorsAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.isConstruct"></a>

```typescript
import { S3Bucket5xxErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

S3Bucket5xxErrorsAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.isOwnedResource"></a>

```typescript
import { S3Bucket5xxErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

S3Bucket5xxErrorsAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.isResource"></a>

```typescript
import { S3Bucket5xxErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

S3Bucket5xxErrorsAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.fromAlarmArn"></a>

```typescript
import { S3Bucket5xxErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

S3Bucket5xxErrorsAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.fromAlarmName"></a>

```typescript
import { S3Bucket5xxErrorsAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

S3Bucket5xxErrorsAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### S3RecommendedAlarms <a name="S3RecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms"></a>

A construct that creates the recommended alarms for an S3 bucket.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.Initializer"></a>

```typescript
import { S3RecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new S3RecommendedAlarms(scope: Construct, id: string, props: S3RecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps">S3RecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps">S3RecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.isConstruct"></a>

```typescript
import { S3RecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

S3RecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.property.alarm4xxErrors">alarm4xxErrors</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm">S3Bucket4xxErrorsAlarm</a></code> | The 4xx errors alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.property.alarm5xxErrors">alarm5xxErrors</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm">S3Bucket5xxErrorsAlarm</a></code> | The 5xx errors alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarm4xxErrors`<sup>Optional</sup> <a name="alarm4xxErrors" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.property.alarm4xxErrors"></a>

```typescript
public readonly alarm4xxErrors: S3Bucket4xxErrorsAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarm">S3Bucket4xxErrorsAlarm</a>

The 4xx errors alarm.

---

##### `alarm5xxErrors`<sup>Optional</sup> <a name="alarm5xxErrors" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarms.property.alarm5xxErrors"></a>

```typescript
public readonly alarm5xxErrors: S3Bucket5xxErrorsAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarm">S3Bucket5xxErrorsAlarm</a>

The 5xx errors alarm.

---


### SfStateMachineExecutionsFailedAlarm <a name="SfStateMachineExecutionsFailedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm"></a>

It helps in tracking the number of executions that fail in AWS Step Functions.

This is crucial for identifying workflows that are
not performing as expected and require attention.

By monitoring the failures, developers can proactively identify and resolve issues before they impact the business operations. This reduces
downtime and improves the overall stability of applications.

The alarm is triggered when the number of failed executions exceed the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.Initializer"></a>

```typescript
import { SfStateMachineExecutionsFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SfStateMachineExecutionsFailedAlarm(scope: IConstruct, id: string, props: SfStateMachineExecutionsFailedAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps">SfStateMachineExecutionsFailedAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps">SfStateMachineExecutionsFailedAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.isConstruct"></a>

```typescript
import { SfStateMachineExecutionsFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionsFailedAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.isOwnedResource"></a>

```typescript
import { SfStateMachineExecutionsFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionsFailedAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.isResource"></a>

```typescript
import { SfStateMachineExecutionsFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionsFailedAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.fromAlarmArn"></a>

```typescript
import { SfStateMachineExecutionsFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionsFailedAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.fromAlarmName"></a>

```typescript
import { SfStateMachineExecutionsFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionsFailedAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### SfStateMachineExecutionsTimedOutAlarm <a name="SfStateMachineExecutionsTimedOutAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm"></a>

This alarm helps in identifying timeouts in state machine executions.

This can indicate problems like poor configuration, inadequate resource allocation, or issues in the called services that need addressing.

The alarm is triggered when the number of timed out executions exceed the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.Initializer"></a>

```typescript
import { SfStateMachineExecutionsTimedOutAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SfStateMachineExecutionsTimedOutAlarm(scope: IConstruct, id: string, props: SfStateMachineExecutionsTimedOutAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps">SfStateMachineExecutionsTimedOutAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps">SfStateMachineExecutionsTimedOutAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.isConstruct"></a>

```typescript
import { SfStateMachineExecutionsTimedOutAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionsTimedOutAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.isOwnedResource"></a>

```typescript
import { SfStateMachineExecutionsTimedOutAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionsTimedOutAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.isResource"></a>

```typescript
import { SfStateMachineExecutionsTimedOutAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionsTimedOutAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.fromAlarmArn"></a>

```typescript
import { SfStateMachineExecutionsTimedOutAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionsTimedOutAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.fromAlarmName"></a>

```typescript
import { SfStateMachineExecutionsTimedOutAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionsTimedOutAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### SfStateMachineExecutionThrottledAlarm <a name="SfStateMachineExecutionThrottledAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm"></a>

The ExecutionThrottled metric tracks the number of times state machine executions are throttled due to exceeding AWS service limits.

Monitoring this can help you identify when you are hitting this limits, which could signal that adjustments need to be made either in
the process design or in the service limits themselves.

The alarm is triggered when the number of executions throttled exceed the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.Initializer"></a>

```typescript
import { SfStateMachineExecutionThrottledAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SfStateMachineExecutionThrottledAlarm(scope: IConstruct, id: string, props: SfStateMachineExecutionThrottledAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps">SfStateMachineExecutionThrottledAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps">SfStateMachineExecutionThrottledAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.isConstruct"></a>

```typescript
import { SfStateMachineExecutionThrottledAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionThrottledAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.isOwnedResource"></a>

```typescript
import { SfStateMachineExecutionThrottledAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionThrottledAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.isResource"></a>

```typescript
import { SfStateMachineExecutionThrottledAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionThrottledAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.fromAlarmArn"></a>

```typescript
import { SfStateMachineExecutionThrottledAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionThrottledAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.fromAlarmName"></a>

```typescript
import { SfStateMachineExecutionThrottledAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionThrottledAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### SfStateMachineExecutionTimeAlarm <a name="SfStateMachineExecutionTimeAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm"></a>

This metric can be a valuable tool for early detection of issues that might not be immediately apparent from other metrics.

A sudden increase in execution time might indicate issues with the steps of the resources they interact with.

The alarm is triggered when the time in milliseconds exceed the threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.Initializer"></a>

```typescript
import { SfStateMachineExecutionTimeAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SfStateMachineExecutionTimeAlarm(scope: IConstruct, id: string, props: SfStateMachineExecutionTimeAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps">SfStateMachineExecutionTimeAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps">SfStateMachineExecutionTimeAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.isConstruct"></a>

```typescript
import { SfStateMachineExecutionTimeAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionTimeAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.isOwnedResource"></a>

```typescript
import { SfStateMachineExecutionTimeAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionTimeAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.isResource"></a>

```typescript
import { SfStateMachineExecutionTimeAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionTimeAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.fromAlarmArn"></a>

```typescript
import { SfStateMachineExecutionTimeAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionTimeAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.fromAlarmName"></a>

```typescript
import { SfStateMachineExecutionTimeAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineExecutionTimeAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### SfStateMachineRecommendedAlarms <a name="SfStateMachineRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms"></a>

A construct that creates the recommended alarms for an StepFunctions StateMachine.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.Initializer"></a>

```typescript
import { SfStateMachineRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SfStateMachineRecommendedAlarms(scope: Construct, id: string, props: SfStateMachineRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps">SfStateMachineRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps">SfStateMachineRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.isConstruct"></a>

```typescript
import { SfStateMachineRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SfStateMachineRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.property.alarmExecutionsFailed">alarmExecutionsFailed</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm">SfStateMachineExecutionsFailedAlarm</a></code> | The ExecutionsFailed alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.property.alarmExecutionsTimedOut">alarmExecutionsTimedOut</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm">SfStateMachineExecutionsTimedOutAlarm</a></code> | The ExecutionsTimedOut alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.property.alarmExecutionThrottled">alarmExecutionThrottled</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm">SfStateMachineExecutionThrottledAlarm</a></code> | The ExecutionThrottled alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.property.alarmExecutionTime">alarmExecutionTime</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm">SfStateMachineExecutionTimeAlarm</a></code> | The ExecutionTime alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmExecutionsFailed`<sup>Optional</sup> <a name="alarmExecutionsFailed" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.property.alarmExecutionsFailed"></a>

```typescript
public readonly alarmExecutionsFailed: SfStateMachineExecutionsFailedAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarm">SfStateMachineExecutionsFailedAlarm</a>

The ExecutionsFailed alarm.

---

##### `alarmExecutionsTimedOut`<sup>Optional</sup> <a name="alarmExecutionsTimedOut" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.property.alarmExecutionsTimedOut"></a>

```typescript
public readonly alarmExecutionsTimedOut: SfStateMachineExecutionsTimedOutAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarm">SfStateMachineExecutionsTimedOutAlarm</a>

The ExecutionsTimedOut alarm.

---

##### `alarmExecutionThrottled`<sup>Optional</sup> <a name="alarmExecutionThrottled" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.property.alarmExecutionThrottled"></a>

```typescript
public readonly alarmExecutionThrottled: SfStateMachineExecutionThrottledAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarm">SfStateMachineExecutionThrottledAlarm</a>

The ExecutionThrottled alarm.

---

##### `alarmExecutionTime`<sup>Optional</sup> <a name="alarmExecutionTime" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarms.property.alarmExecutionTime"></a>

```typescript
public readonly alarmExecutionTime: SfStateMachineExecutionTimeAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarm">SfStateMachineExecutionTimeAlarm</a>

The ExecutionTime alarm.

---


### SnsNumberOfMessagesPublishedAlarm <a name="SnsNumberOfMessagesPublishedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm"></a>

An alarm that monitors the number of messages published to an SNS topic.

This alarm helps you proactively monitor and detect significant drops in
notification publishing. This helps you identify potential issues with
your application or business processes, so that you can take appropriate
actions to maintain the expected flow of notifications. You should create
this alarm if you expect your system to have a minimum traffic that it
is serving.

The alarm is triggered when the number of messages published to the topic
is less than the specified threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.Initializer"></a>

```typescript
import { SnsNumberOfMessagesPublishedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SnsNumberOfMessagesPublishedAlarm(scope: IConstruct, id: string, props: SnsNumberOfMessagesPublishedAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps">SnsNumberOfMessagesPublishedAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps">SnsNumberOfMessagesPublishedAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.isConstruct"></a>

```typescript
import { SnsNumberOfMessagesPublishedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfMessagesPublishedAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.isOwnedResource"></a>

```typescript
import { SnsNumberOfMessagesPublishedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfMessagesPublishedAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.isResource"></a>

```typescript
import { SnsNumberOfMessagesPublishedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfMessagesPublishedAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.fromAlarmArn"></a>

```typescript
import { SnsNumberOfMessagesPublishedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfMessagesPublishedAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.fromAlarmName"></a>

```typescript
import { SnsNumberOfMessagesPublishedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfMessagesPublishedAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### SnsNumberOfNotificationsDeliveredAlarm <a name="SnsNumberOfNotificationsDeliveredAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm"></a>

An alarm that monitors the number of notifications delivered by an SNS topic.

This alarm helps you detect a drop in the volume of messages delivered.
You should create this alarm if you expect your system to have a
minimum traffic that it is serving.

The alarm is triggered when the number of messages delivered by the topic
is less than the specified threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsDeliveredAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SnsNumberOfNotificationsDeliveredAlarm(scope: IConstruct, id: string, props: SnsNumberOfNotificationsDeliveredAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps">SnsNumberOfNotificationsDeliveredAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps">SnsNumberOfNotificationsDeliveredAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.isConstruct"></a>

```typescript
import { SnsNumberOfNotificationsDeliveredAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsDeliveredAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.isOwnedResource"></a>

```typescript
import { SnsNumberOfNotificationsDeliveredAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsDeliveredAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.isResource"></a>

```typescript
import { SnsNumberOfNotificationsDeliveredAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsDeliveredAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.fromAlarmArn"></a>

```typescript
import { SnsNumberOfNotificationsDeliveredAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsDeliveredAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.fromAlarmName"></a>

```typescript
import { SnsNumberOfNotificationsDeliveredAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsDeliveredAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### SnsNumberOfNotificationsFailedAlarm <a name="SnsNumberOfNotificationsFailedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm"></a>

An alarm that monitors the number of notifications failed by an SNS topic.

This alarm helps you proactively find issues with the delivery of notifications
and take appropriate actions to address them.

The alarm is triggered when the number of messages failed by the topic
is greater than the specified threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SnsNumberOfNotificationsFailedAlarm(scope: IConstruct, id: string, props: SnsNumberOfNotificationsFailedAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps">SnsNumberOfNotificationsFailedAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps">SnsNumberOfNotificationsFailedAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.isConstruct"></a>

```typescript
import { SnsNumberOfNotificationsFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFailedAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.isOwnedResource"></a>

```typescript
import { SnsNumberOfNotificationsFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFailedAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.isResource"></a>

```typescript
import { SnsNumberOfNotificationsFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFailedAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.fromAlarmArn"></a>

```typescript
import { SnsNumberOfNotificationsFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFailedAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.fromAlarmName"></a>

```typescript
import { SnsNumberOfNotificationsFailedAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFailedAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### SnsNumberOfNotificationsFailedToRedriveToDlqAlarm <a name="SnsNumberOfNotificationsFailedToRedriveToDlqAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm"></a>

An alarm that monitors the number of notifications failed to redrive to the dead-letter queue.

The alarm is used to detect messages that couldn't be moved to a dead-letter
queue.

The alarm is triggered when the number of messages failed to redrive to the
dead-letter queue is greater than the specified threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsFailedToRedriveToDlqAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SnsNumberOfNotificationsFailedToRedriveToDlqAlarm(scope: IConstruct, id: string, props: SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps">SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps">SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.isConstruct"></a>

```typescript
import { SnsNumberOfNotificationsFailedToRedriveToDlqAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.isOwnedResource"></a>

```typescript
import { SnsNumberOfNotificationsFailedToRedriveToDlqAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.isResource"></a>

```typescript
import { SnsNumberOfNotificationsFailedToRedriveToDlqAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.fromAlarmArn"></a>

```typescript
import { SnsNumberOfNotificationsFailedToRedriveToDlqAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.fromAlarmName"></a>

```typescript
import { SnsNumberOfNotificationsFailedToRedriveToDlqAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm <a name="SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm"></a>

An alarm that monitors the number of notifications filtered out due to invalid attributes.

The alarm is used to detect if the published messages are not valid or
if inappropriate filters have been applied to a subscriber.

The alarm is triggered when the number of messages filtered out due to
invalid attributes is greater than the specified threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm(scope: IConstruct, id: string, props: SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps">SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps">SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.isConstruct"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.isOwnedResource"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.isResource"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.fromAlarmArn"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.fromAlarmName"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm <a name="SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm"></a>

An alarm that monitors the number of notifications filtered out due to invalid message body.

The alarm is used to detect if the published messages are not valid or
if inappropriate filters have been applied to a subscriber.

The alarm is triggered when the number of messages filtered out due to
invalid message body is greater than the specified threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm(scope: IConstruct, id: string, props: SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps">SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps">SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.isConstruct"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.isOwnedResource"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.isResource"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.fromAlarmArn"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.fromAlarmName"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### SnsNumberOfNotificationsRedrivenToDlqAlarm <a name="SnsNumberOfNotificationsRedrivenToDlqAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm"></a>

An alarm that monitors the number of notifications redriven to the dead-letter queue.

The alarm is used to detect messages that moved to a dead-letter
queue. We recommend that you create this alarm when SNS is coupled
with SQS, Lambda or Firehose.

The alarm is triggered when the number of messages redriven to the
dead-letter queue is greater than the specified threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsRedrivenToDlqAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SnsNumberOfNotificationsRedrivenToDlqAlarm(scope: IConstruct, id: string, props: SnsNumberOfNotificationsRedrivenToDlqAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps">SnsNumberOfNotificationsRedrivenToDlqAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps">SnsNumberOfNotificationsRedrivenToDlqAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.isConstruct"></a>

```typescript
import { SnsNumberOfNotificationsRedrivenToDlqAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsRedrivenToDlqAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.isOwnedResource"></a>

```typescript
import { SnsNumberOfNotificationsRedrivenToDlqAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsRedrivenToDlqAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.isResource"></a>

```typescript
import { SnsNumberOfNotificationsRedrivenToDlqAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsRedrivenToDlqAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.fromAlarmArn"></a>

```typescript
import { SnsNumberOfNotificationsRedrivenToDlqAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsRedrivenToDlqAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.fromAlarmName"></a>

```typescript
import { SnsNumberOfNotificationsRedrivenToDlqAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsNumberOfNotificationsRedrivenToDlqAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### SnsRecommendedAlarms <a name="SnsRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms"></a>

A construct that creates recommended alarms for an SNS topic.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#SNS)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.Initializer"></a>

```typescript
import { SnsRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SnsRecommendedAlarms(scope: Construct, id: string, props: SnsRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps">SnsRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps">SnsRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.isConstruct"></a>

```typescript
import { SnsRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SnsRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.alarmNumberOfMessagesPublished">alarmNumberOfMessagesPublished</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm">SnsNumberOfMessagesPublishedAlarm</a></code> | The NumberOfMessagesPublished alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.alarmNumberOfNotificationsDelivered">alarmNumberOfNotificationsDelivered</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm">SnsNumberOfNotificationsDeliveredAlarm</a></code> | The NumberOfNotificationsDelivered alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.alarmNumberOfNotificationsFailed">alarmNumberOfNotificationsFailed</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm">SnsNumberOfNotificationsFailedAlarm</a></code> | The NumberOfNotificationsFailed alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.alarmNumberOfNotificationsFailedToRedriveToDlq">alarmNumberOfNotificationsFailedToRedriveToDlq</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm">SnsNumberOfNotificationsFailedToRedriveToDlqAlarm</a></code> | The NumberOfNotificationsFailedToRedriveToDlq alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.alarmNumberOfNotificationsFilteredOutInvalidAttributes">alarmNumberOfNotificationsFilteredOutInvalidAttributes</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm">SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm</a></code> | The NumberOfNotificationsFilteredOutInvalidAttributes alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.alarmNumberOfNotificationsFilteredOutInvalidMessageBody">alarmNumberOfNotificationsFilteredOutInvalidMessageBody</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm">SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm</a></code> | The NumberOfNotificationsFilteredOutInvalidMessageBody alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.alarmNumberOfNotificationsRedrivenToDlq">alarmNumberOfNotificationsRedrivenToDlq</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm">SnsNumberOfNotificationsRedrivenToDlqAlarm</a></code> | The NumberOfNotificationsRedrivenToDlq alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmNumberOfMessagesPublished`<sup>Optional</sup> <a name="alarmNumberOfMessagesPublished" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.alarmNumberOfMessagesPublished"></a>

```typescript
public readonly alarmNumberOfMessagesPublished: SnsNumberOfMessagesPublishedAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarm">SnsNumberOfMessagesPublishedAlarm</a>

The NumberOfMessagesPublished alarm.

---

##### `alarmNumberOfNotificationsDelivered`<sup>Optional</sup> <a name="alarmNumberOfNotificationsDelivered" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.alarmNumberOfNotificationsDelivered"></a>

```typescript
public readonly alarmNumberOfNotificationsDelivered: SnsNumberOfNotificationsDeliveredAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarm">SnsNumberOfNotificationsDeliveredAlarm</a>

The NumberOfNotificationsDelivered alarm.

---

##### `alarmNumberOfNotificationsFailed`<sup>Optional</sup> <a name="alarmNumberOfNotificationsFailed" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.alarmNumberOfNotificationsFailed"></a>

```typescript
public readonly alarmNumberOfNotificationsFailed: SnsNumberOfNotificationsFailedAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarm">SnsNumberOfNotificationsFailedAlarm</a>

The NumberOfNotificationsFailed alarm.

---

##### `alarmNumberOfNotificationsFailedToRedriveToDlq`<sup>Optional</sup> <a name="alarmNumberOfNotificationsFailedToRedriveToDlq" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.alarmNumberOfNotificationsFailedToRedriveToDlq"></a>

```typescript
public readonly alarmNumberOfNotificationsFailedToRedriveToDlq: SnsNumberOfNotificationsFailedToRedriveToDlqAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarm">SnsNumberOfNotificationsFailedToRedriveToDlqAlarm</a>

The NumberOfNotificationsFailedToRedriveToDlq alarm.

---

##### `alarmNumberOfNotificationsFilteredOutInvalidAttributes`<sup>Optional</sup> <a name="alarmNumberOfNotificationsFilteredOutInvalidAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.alarmNumberOfNotificationsFilteredOutInvalidAttributes"></a>

```typescript
public readonly alarmNumberOfNotificationsFilteredOutInvalidAttributes: SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm">SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm</a>

The NumberOfNotificationsFilteredOutInvalidAttributes alarm.

---

##### `alarmNumberOfNotificationsFilteredOutInvalidMessageBody`<sup>Optional</sup> <a name="alarmNumberOfNotificationsFilteredOutInvalidMessageBody" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.alarmNumberOfNotificationsFilteredOutInvalidMessageBody"></a>

```typescript
public readonly alarmNumberOfNotificationsFilteredOutInvalidMessageBody: SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm">SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm</a>

The NumberOfNotificationsFilteredOutInvalidMessageBody alarm.

---

##### `alarmNumberOfNotificationsRedrivenToDlq`<sup>Optional</sup> <a name="alarmNumberOfNotificationsRedrivenToDlq" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarms.property.alarmNumberOfNotificationsRedrivenToDlq"></a>

```typescript
public readonly alarmNumberOfNotificationsRedrivenToDlq: SnsNumberOfNotificationsRedrivenToDlqAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarm">SnsNumberOfNotificationsRedrivenToDlqAlarm</a>

The NumberOfNotificationsRedrivenToDlq alarm.

---


### SqsApproximateAgeOfOldestMessageAlarm <a name="SqsApproximateAgeOfOldestMessageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm"></a>

An alarm that watches the age of the oldest message in the queue.

This alarm is used to detect whether the age of the oldest message
in the QueueName queue is too high. High age can be an indication
that messages are not processed quickly enough or that there are
some poison-pill messages that are stuck in the queue and can't
be processed.

This alarm is triggered when the age of the oldest message in the
queue exceeds or is equal to the specified threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.Initializer"></a>

```typescript
import { SqsApproximateAgeOfOldestMessageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SqsApproximateAgeOfOldestMessageAlarm(scope: IConstruct, id: string, props: SqsApproximateAgeOfOldestMessageAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps">SqsApproximateAgeOfOldestMessageAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps">SqsApproximateAgeOfOldestMessageAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.isConstruct"></a>

```typescript
import { SqsApproximateAgeOfOldestMessageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsApproximateAgeOfOldestMessageAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.isOwnedResource"></a>

```typescript
import { SqsApproximateAgeOfOldestMessageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsApproximateAgeOfOldestMessageAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.isResource"></a>

```typescript
import { SqsApproximateAgeOfOldestMessageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsApproximateAgeOfOldestMessageAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.fromAlarmArn"></a>

```typescript
import { SqsApproximateAgeOfOldestMessageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsApproximateAgeOfOldestMessageAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.fromAlarmName"></a>

```typescript
import { SqsApproximateAgeOfOldestMessageAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsApproximateAgeOfOldestMessageAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### SqsApproximateNumberOfMessagesNotVisibleAlarm <a name="SqsApproximateNumberOfMessagesNotVisibleAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm"></a>

An alarm that watches the number of messages that are in flight.

This alarm is used to detect a high number of in-flight messages
in the queue. If consumers do not delete messages within the
visibility timeout period, when the queue is polled, messages
reappear in the queue. For FIFO queues, there can be a maximum
of 20,000 in-flight messages. If you reach this quota, SQS returns
no error messages. A FIFO queue looks through the first 20k
messages to determine available message groups. This means that
if you have a backlog of messages in a single message group,
you cannot consume messages from other message groups that were
sent to the queue at a later time until you successfully
consume the messages from the backlog.

This alarm is triggered when the number of messages that are in
flight exceeds or is equal to the specified threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.Initializer"></a>

```typescript
import { SqsApproximateNumberOfMessagesNotVisibleAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SqsApproximateNumberOfMessagesNotVisibleAlarm(scope: IConstruct, id: string, props: SqsApproximateNumberOfMessagesNotVisibleAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps">SqsApproximateNumberOfMessagesNotVisibleAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps">SqsApproximateNumberOfMessagesNotVisibleAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.isConstruct"></a>

```typescript
import { SqsApproximateNumberOfMessagesNotVisibleAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsApproximateNumberOfMessagesNotVisibleAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.isOwnedResource"></a>

```typescript
import { SqsApproximateNumberOfMessagesNotVisibleAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsApproximateNumberOfMessagesNotVisibleAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.isResource"></a>

```typescript
import { SqsApproximateNumberOfMessagesNotVisibleAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsApproximateNumberOfMessagesNotVisibleAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.fromAlarmArn"></a>

```typescript
import { SqsApproximateNumberOfMessagesNotVisibleAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsApproximateNumberOfMessagesNotVisibleAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.fromAlarmName"></a>

```typescript
import { SqsApproximateNumberOfMessagesNotVisibleAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsApproximateNumberOfMessagesNotVisibleAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### SqsApproximateNumberOfMessagesVisibleAlarm <a name="SqsApproximateNumberOfMessagesVisibleAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm"></a>

An alarm that watches the number of messages that are visible in the queue.

This alarm is used to detect whether the message
count of the active queue is too high and consumers
are slow to process the messages or there are not
enough consumers to process them.

This alarm is triggered when the number of messages
that are visible in the queue exceeds or is equal to
the specified threshold.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.Initializer"></a>

```typescript
import { SqsApproximateNumberOfMessagesVisibleAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SqsApproximateNumberOfMessagesVisibleAlarm(scope: IConstruct, id: string, props: SqsApproximateNumberOfMessagesVisibleAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps">SqsApproximateNumberOfMessagesVisibleAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps">SqsApproximateNumberOfMessagesVisibleAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.isConstruct"></a>

```typescript
import { SqsApproximateNumberOfMessagesVisibleAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsApproximateNumberOfMessagesVisibleAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.isOwnedResource"></a>

```typescript
import { SqsApproximateNumberOfMessagesVisibleAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsApproximateNumberOfMessagesVisibleAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.isResource"></a>

```typescript
import { SqsApproximateNumberOfMessagesVisibleAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsApproximateNumberOfMessagesVisibleAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.fromAlarmArn"></a>

```typescript
import { SqsApproximateNumberOfMessagesVisibleAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsApproximateNumberOfMessagesVisibleAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.fromAlarmName"></a>

```typescript
import { SqsApproximateNumberOfMessagesVisibleAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsApproximateNumberOfMessagesVisibleAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### SqsNumberOfMessagesSentAlarm <a name="SqsNumberOfMessagesSentAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm"></a>

An alarm that watches the number of messages that are sent.

This alarm is used to detect when a producer stops sending messages.

This alarm is triggered when the number of messages sent is less than
or equal to the specified threshold. By default, 0.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.Initializer"></a>

```typescript
import { SqsNumberOfMessagesSentAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SqsNumberOfMessagesSentAlarm(scope: IConstruct, id: string, props: SqsNumberOfMessagesSentAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps">SqsNumberOfMessagesSentAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps">SqsNumberOfMessagesSentAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.isConstruct"></a>

```typescript
import { SqsNumberOfMessagesSentAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsNumberOfMessagesSentAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.isOwnedResource"></a>

```typescript
import { SqsNumberOfMessagesSentAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsNumberOfMessagesSentAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.isResource"></a>

```typescript
import { SqsNumberOfMessagesSentAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsNumberOfMessagesSentAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.fromAlarmArn"></a>

```typescript
import { SqsNumberOfMessagesSentAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsNumberOfMessagesSentAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.fromAlarmName"></a>

```typescript
import { SqsNumberOfMessagesSentAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsNumberOfMessagesSentAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### SqsRecommendedAlarms <a name="SqsRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms"></a>

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.Initializer"></a>

```typescript
import { SqsRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SqsRecommendedAlarms(scope: Construct, id: string, props: SqsRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps">SqsRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps">SqsRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.isConstruct"></a>

```typescript
import { SqsRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

SqsRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.property.alarmApproximateAgeOfOldestMessage">alarmApproximateAgeOfOldestMessage</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm">SqsApproximateAgeOfOldestMessageAlarm</a></code> | The approximate age of oldest message alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.property.alarmApproximateNumberOfMessagesNotVisible">alarmApproximateNumberOfMessagesNotVisible</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm">SqsApproximateNumberOfMessagesNotVisibleAlarm</a></code> | The approximate number of messages not visible alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.property.alarmApproximateNumberOfMessagesVisible">alarmApproximateNumberOfMessagesVisible</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm">SqsApproximateNumberOfMessagesVisibleAlarm</a></code> | The approximate number of messages visible alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.property.alarmNumberOfMessagesSent">alarmNumberOfMessagesSent</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm">SqsNumberOfMessagesSentAlarm</a></code> | The number of messages sent alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmApproximateAgeOfOldestMessage`<sup>Optional</sup> <a name="alarmApproximateAgeOfOldestMessage" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.property.alarmApproximateAgeOfOldestMessage"></a>

```typescript
public readonly alarmApproximateAgeOfOldestMessage: SqsApproximateAgeOfOldestMessageAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarm">SqsApproximateAgeOfOldestMessageAlarm</a>

The approximate age of oldest message alarm.

---

##### `alarmApproximateNumberOfMessagesNotVisible`<sup>Optional</sup> <a name="alarmApproximateNumberOfMessagesNotVisible" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.property.alarmApproximateNumberOfMessagesNotVisible"></a>

```typescript
public readonly alarmApproximateNumberOfMessagesNotVisible: SqsApproximateNumberOfMessagesNotVisibleAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarm">SqsApproximateNumberOfMessagesNotVisibleAlarm</a>

The approximate number of messages not visible alarm.

---

##### `alarmApproximateNumberOfMessagesVisible`<sup>Optional</sup> <a name="alarmApproximateNumberOfMessagesVisible" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.property.alarmApproximateNumberOfMessagesVisible"></a>

```typescript
public readonly alarmApproximateNumberOfMessagesVisible: SqsApproximateNumberOfMessagesVisibleAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarm">SqsApproximateNumberOfMessagesVisibleAlarm</a>

The approximate number of messages visible alarm.

---

##### `alarmNumberOfMessagesSent`<sup>Optional</sup> <a name="alarmNumberOfMessagesSent" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarms.property.alarmNumberOfMessagesSent"></a>

```typescript
public readonly alarmNumberOfMessagesSent: SqsNumberOfMessagesSentAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarm">SqsNumberOfMessagesSentAlarm</a>

The number of messages sent alarm.

---


### StateMachine <a name="StateMachine" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine"></a>

An extension for the StateMachine construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.Initializer"></a>

```typescript
import { StateMachine } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new StateMachine(scope: Construct, id: string, props: StateMachineProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_stepfunctions.StateMachineProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_stepfunctions.StateMachineProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.addToRolePolicy">addToRolePolicy</a></code> | Add the given statement to the role's policy. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grant">grant</a></code> | Grant the given identity custom permissions. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantExecution">grantExecution</a></code> | Grant the given identity permissions on all executions of the state machine. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantRead">grantRead</a></code> | Grant the given identity permissions to read results from state machine. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantRedriveExecution">grantRedriveExecution</a></code> | Grant the given identity permission to redrive the execution of the state machine. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantStartExecution">grantStartExecution</a></code> | Grant the given identity permissions to start an execution of this state machine. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantStartSyncExecution">grantStartSyncExecution</a></code> | Grant the given identity permissions to start a synchronous execution of this state machine. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantTaskResponse">grantTaskResponse</a></code> | Grant the given identity task response permissions on a state machine. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metric">metric</a></code> | Return the given named metric for this State Machine's executions. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricAborted">metricAborted</a></code> | Metric for the number of executions that were aborted. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricFailed">metricFailed</a></code> | Metric for the number of executions that failed. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricStarted">metricStarted</a></code> | Metric for the number of executions that were started. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricSucceeded">metricSucceeded</a></code> | Metric for the number of executions that succeeded. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricThrottled">metricThrottled</a></code> | Metric for the number of executions that were throttled. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricTime">metricTime</a></code> | Metric for the interval, in milliseconds, between the time the execution starts and the time it closes. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricTimedOut">metricTimedOut</a></code> | Metric for the number of executions that timed out. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.alarmExecutionsFailed">alarmExecutionsFailed</a></code> | Creates an alarm that monitors the ExecutionsFailed for the StepFunctions stateMachine. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.alarmExecutionsTimedOut">alarmExecutionsTimedOut</a></code> | Creates an alarm that monitors the ExecutionsTimedOut for the StepFunctions stateMachine. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.alarmExecutionThrottled">alarmExecutionThrottled</a></code> | Creates an alarm that monitors the ExecutionThrottled for the StepFunctions stateMachine. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.alarmExecutionTime">alarmExecutionTime</a></code> | Creates an alarm that monitors the ExecutionTime for the StepFunctions stateMachine. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the StepFunctions StateMachine. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addToRolePolicy` <a name="addToRolePolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.addToRolePolicy"></a>

```typescript
public addToRolePolicy(statement: PolicyStatement): void
```

Add the given statement to the role's policy.

###### `statement`<sup>Required</sup> <a name="statement" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.addToRolePolicy.parameter.statement"></a>

- *Type:* aws-cdk-lib.aws_iam.PolicyStatement

---

##### `grant` <a name="grant" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grant"></a>

```typescript
public grant(identity: IGrantable, actions: ...string[]): Grant
```

Grant the given identity custom permissions.

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grant.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grant.parameter.actions"></a>

- *Type:* ...string[]

---

##### `grantExecution` <a name="grantExecution" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantExecution"></a>

```typescript
public grantExecution(identity: IGrantable, actions: ...string[]): Grant
```

Grant the given identity permissions on all executions of the state machine.

The use of this method is discouraged. Please use `grants.execution()` instead.

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantExecution.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantExecution.parameter.actions"></a>

- *Type:* ...string[]

---

##### `grantRead` <a name="grantRead" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantRead"></a>

```typescript
public grantRead(identity: IGrantable): Grant
```

Grant the given identity permissions to read results from state machine.

The use of this method is discouraged. Please use `grants.read()` instead.

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantRead.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

##### `grantRedriveExecution` <a name="grantRedriveExecution" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantRedriveExecution"></a>

```typescript
public grantRedriveExecution(identity: IGrantable): Grant
```

Grant the given identity permission to redrive the execution of the state machine.

The use of this method is discouraged. Please use `grants.redriveExecution()` instead.

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantRedriveExecution.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

##### `grantStartExecution` <a name="grantStartExecution" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantStartExecution"></a>

```typescript
public grantStartExecution(identity: IGrantable): Grant
```

Grant the given identity permissions to start an execution of this state machine.

The use of this method is discouraged. Please use `grants.startExecution()` instead.

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantStartExecution.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

##### `grantStartSyncExecution` <a name="grantStartSyncExecution" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantStartSyncExecution"></a>

```typescript
public grantStartSyncExecution(identity: IGrantable): Grant
```

Grant the given identity permissions to start a synchronous execution of this state machine.

The use of this method is discouraged. Please use `grants.startSyncExecution()` instead.

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantStartSyncExecution.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

##### `grantTaskResponse` <a name="grantTaskResponse" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantTaskResponse"></a>

```typescript
public grantTaskResponse(identity: IGrantable): Grant
```

Grant the given identity task response permissions on a state machine.

The use of this method is discouraged. Please use `grants.taskResponse()` instead.

[disable-awslint:no-grants]

###### `identity`<sup>Required</sup> <a name="identity" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.grantTaskResponse.parameter.identity"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

##### `metric` <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metric"></a>

```typescript
public metric(metricName: string, props?: MetricOptions): Metric
```

Return the given named metric for this State Machine's executions.

###### `metricName`<sup>Required</sup> <a name="metricName" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metric.parameter.metricName"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metric.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricAborted` <a name="metricAborted" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricAborted"></a>

```typescript
public metricAborted(props?: MetricOptions): Metric
```

Metric for the number of executions that were aborted.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricAborted.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricFailed` <a name="metricFailed" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricFailed"></a>

```typescript
public metricFailed(props?: MetricOptions): Metric
```

Metric for the number of executions that failed.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricFailed.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricStarted` <a name="metricStarted" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricStarted"></a>

```typescript
public metricStarted(props?: MetricOptions): Metric
```

Metric for the number of executions that were started.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricStarted.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricSucceeded` <a name="metricSucceeded" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricSucceeded"></a>

```typescript
public metricSucceeded(props?: MetricOptions): Metric
```

Metric for the number of executions that succeeded.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricSucceeded.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricThrottled` <a name="metricThrottled" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricThrottled"></a>

```typescript
public metricThrottled(props?: MetricOptions): Metric
```

Metric for the number of executions that were throttled.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricThrottled.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricTime` <a name="metricTime" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricTime"></a>

```typescript
public metricTime(props?: MetricOptions): Metric
```

Metric for the interval, in milliseconds, between the time the execution starts and the time it closes.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricTime.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricTimedOut` <a name="metricTimedOut" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricTimedOut"></a>

```typescript
public metricTimedOut(props?: MetricOptions): Metric
```

Metric for the number of executions that timed out.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.metricTimedOut.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `alarmExecutionsFailed` <a name="alarmExecutionsFailed" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.alarmExecutionsFailed"></a>

```typescript
public alarmExecutionsFailed(props?: SfStateMachineExecutionsFailedAlarmConfig): SfStateMachineExecutionsFailedAlarm
```

Creates an alarm that monitors the ExecutionsFailed for the StepFunctions stateMachine.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.alarmExecutionsFailed.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig">SfStateMachineExecutionsFailedAlarmConfig</a>

---

##### `alarmExecutionsTimedOut` <a name="alarmExecutionsTimedOut" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.alarmExecutionsTimedOut"></a>

```typescript
public alarmExecutionsTimedOut(props?: SfStateMachineExecutionsTimedOutAlarmConfig): SfStateMachineExecutionsTimedOutAlarm
```

Creates an alarm that monitors the ExecutionsTimedOut for the StepFunctions stateMachine.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.alarmExecutionsTimedOut.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig">SfStateMachineExecutionsTimedOutAlarmConfig</a>

---

##### `alarmExecutionThrottled` <a name="alarmExecutionThrottled" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.alarmExecutionThrottled"></a>

```typescript
public alarmExecutionThrottled(props?: SfStateMachineExecutionThrottledAlarmConfig): SfStateMachineExecutionThrottledAlarm
```

Creates an alarm that monitors the ExecutionThrottled for the StepFunctions stateMachine.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.alarmExecutionThrottled.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig">SfStateMachineExecutionThrottledAlarmConfig</a>

---

##### `alarmExecutionTime` <a name="alarmExecutionTime" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.alarmExecutionTime"></a>

```typescript
public alarmExecutionTime(props: SfStateMachineExecutionTimeAlarmConfig): SfStateMachineExecutionTimeAlarm
```

Creates an alarm that monitors the ExecutionTime for the StepFunctions stateMachine.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.alarmExecutionTime.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig">SfStateMachineExecutionTimeAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: SfStateMachineRecommendedAlarmsConfig): SfStateMachineRecommendedAlarms
```

Creates the recommended alarms for the StepFunctions StateMachine.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig">SfStateMachineRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.fromStateMachineArn">fromStateMachineArn</a></code> | Import a state machine. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.fromStateMachineName">fromStateMachineName</a></code> | Import a state machine via resource name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.isConstruct"></a>

```typescript
import { StateMachine } from '@renovosolutions/cdk-library-cloudwatch-alarms'

StateMachine.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.isOwnedResource"></a>

```typescript
import { StateMachine } from '@renovosolutions/cdk-library-cloudwatch-alarms'

StateMachine.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.isResource"></a>

```typescript
import { StateMachine } from '@renovosolutions/cdk-library-cloudwatch-alarms'

StateMachine.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromStateMachineArn` <a name="fromStateMachineArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.fromStateMachineArn"></a>

```typescript
import { StateMachine } from '@renovosolutions/cdk-library-cloudwatch-alarms'

StateMachine.fromStateMachineArn(scope: Construct, id: string, stateMachineArn: string)
```

Import a state machine.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.fromStateMachineArn.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.fromStateMachineArn.parameter.id"></a>

- *Type:* string

---

###### `stateMachineArn`<sup>Required</sup> <a name="stateMachineArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.fromStateMachineArn.parameter.stateMachineArn"></a>

- *Type:* string

---

##### `fromStateMachineName` <a name="fromStateMachineName" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.fromStateMachineName"></a>

```typescript
import { StateMachine } from '@renovosolutions/cdk-library-cloudwatch-alarms'

StateMachine.fromStateMachineName(scope: Construct, id: string, stateMachineName: string)
```

Import a state machine via resource name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.fromStateMachineName.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.fromStateMachineName.parameter.id"></a>

- *Type:* string

---

###### `stateMachineName`<sup>Required</sup> <a name="stateMachineName" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.fromStateMachineName.parameter.stateMachineName"></a>

- *Type:* string

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.grantPrincipal">grantPrincipal</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | The principal this state machine is running as. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.role">role</a></code> | <code>aws-cdk-lib.aws_iam.IRole</code> | Execution role of this state machine. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.stateMachineArn">stateMachineArn</a></code> | <code>string</code> | The ARN of the state machine. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.stateMachineName">stateMachineName</a></code> | <code>string</code> | The name of the state machine. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.stateMachineRef">stateMachineRef</a></code> | <code>aws-cdk-lib.interfaces.aws_stepfunctions.StateMachineReference</code> | A reference to a StateMachine resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.stateMachineRevisionId">stateMachineRevisionId</a></code> | <code>string</code> | Identifier for the state machine revision, which is an immutable, read-only snapshot of a state machine’s definition and configuration. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.stateMachineType">stateMachineType</a></code> | <code>aws-cdk-lib.aws_stepfunctions.StateMachineType</code> | Type of the state machine. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.grants">grants</a></code> | <code>aws-cdk-lib.aws_stepfunctions.StateMachineGrants</code> | Collection of grant methods for a StateMachine. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `grantPrincipal`<sup>Required</sup> <a name="grantPrincipal" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.grantPrincipal"></a>

```typescript
public readonly grantPrincipal: IPrincipal;
```

- *Type:* aws-cdk-lib.aws_iam.IPrincipal

The principal this state machine is running as.

---

##### `role`<sup>Required</sup> <a name="role" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.role"></a>

```typescript
public readonly role: IRole;
```

- *Type:* aws-cdk-lib.aws_iam.IRole

Execution role of this state machine.

---

##### `stateMachineArn`<sup>Required</sup> <a name="stateMachineArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.stateMachineArn"></a>

```typescript
public readonly stateMachineArn: string;
```

- *Type:* string

The ARN of the state machine.

---

##### `stateMachineName`<sup>Required</sup> <a name="stateMachineName" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.stateMachineName"></a>

```typescript
public readonly stateMachineName: string;
```

- *Type:* string

The name of the state machine.

---

##### `stateMachineRef`<sup>Required</sup> <a name="stateMachineRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.stateMachineRef"></a>

```typescript
public readonly stateMachineRef: StateMachineReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_stepfunctions.StateMachineReference

A reference to a StateMachine resource.

---

##### `stateMachineRevisionId`<sup>Required</sup> <a name="stateMachineRevisionId" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.stateMachineRevisionId"></a>

```typescript
public readonly stateMachineRevisionId: string;
```

- *Type:* string

Identifier for the state machine revision, which is an immutable, read-only snapshot of a state machine’s definition and configuration.

---

##### `stateMachineType`<sup>Required</sup> <a name="stateMachineType" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.stateMachineType"></a>

```typescript
public readonly stateMachineType: StateMachineType;
```

- *Type:* aws-cdk-lib.aws_stepfunctions.StateMachineType

Type of the state machine.

---

##### `grants`<sup>Required</sup> <a name="grants" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.grants"></a>

```typescript
public readonly grants: StateMachineGrants;
```

- *Type:* aws-cdk-lib.aws_stepfunctions.StateMachineGrants

Collection of grant methods for a StateMachine.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.StateMachine.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### Table <a name="Table" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table"></a>

An extension for the Table construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.Initializer"></a>

```typescript
import { Table } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new Table(scope: Construct, id: string, props: TableProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_dynamodb.TableProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_dynamodb.TableProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.addToResourcePolicy">addToResourcePolicy</a></code> | Adds a statement to the resource policy associated with this table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.grant">grant</a></code> | Adds an IAM policy statement associated with this table to an IAM principal's policy. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantFullAccess">grantFullAccess</a></code> | Permits all DynamoDB operations ("dynamodb:*") to an IAM principal. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantOnKey">grantOnKey</a></code> | Gives permissions to a grantable entity to perform actions on the encryption key. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantReadData">grantReadData</a></code> | Permits an IAM principal all data read operations from this table: BatchGetItem, GetRecords, GetShardIterator, Query, GetItem, Scan, DescribeTable. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantReadWriteData">grantReadWriteData</a></code> | Permits an IAM principal to all data read/write operations to this table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantStream">grantStream</a></code> | Adds an IAM policy statement associated with this table's stream to an IAM principal's policy. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantStreamRead">grantStreamRead</a></code> | Permits an IAM principal all stream data read operations for this table's stream: DescribeStream, GetRecords, GetShardIterator, ListStreams. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantTableListStreams">grantTableListStreams</a></code> | Permits an IAM Principal to list streams attached to current dynamodb table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantWriteData">grantWriteData</a></code> | Permits an IAM principal all data write operations to this table: BatchWriteItem, PutItem, UpdateItem, DeleteItem, DescribeTable. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.metric">metric</a></code> | Return the given named metric for this Table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricConditionalCheckFailedRequests">metricConditionalCheckFailedRequests</a></code> | Metric for the conditional check failed requests this table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricConsumedReadCapacityUnits">metricConsumedReadCapacityUnits</a></code> | Metric for the consumed read capacity units this table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricConsumedWriteCapacityUnits">metricConsumedWriteCapacityUnits</a></code> | Metric for the consumed write capacity units this table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricSuccessfulRequestLatency">metricSuccessfulRequestLatency</a></code> | Metric for the successful request latency this table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricSystemErrors">metricSystemErrors</a></code> | Metric for the system errors this table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricSystemErrorsForOperations">metricSystemErrorsForOperations</a></code> | Metric for the system errors this table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricThrottledRequests">metricThrottledRequests</a></code> | How many requests are throttled on this table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricThrottledRequestsForOperation">metricThrottledRequestsForOperation</a></code> | How many requests are throttled on this table, for the given operation. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricThrottledRequestsForOperations">metricThrottledRequestsForOperations</a></code> | How many requests are throttled on this table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricUserErrors">metricUserErrors</a></code> | Metric for the user errors. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.addGlobalSecondaryIndex">addGlobalSecondaryIndex</a></code> | Add a global secondary index of table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.addLocalSecondaryIndex">addLocalSecondaryIndex</a></code> | Add a local secondary index of table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.autoScaleGlobalSecondaryIndexReadCapacity">autoScaleGlobalSecondaryIndexReadCapacity</a></code> | Enable read capacity scaling for the given GSI. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.autoScaleGlobalSecondaryIndexWriteCapacity">autoScaleGlobalSecondaryIndexWriteCapacity</a></code> | Enable write capacity scaling for the given GSI. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.autoScaleReadCapacity">autoScaleReadCapacity</a></code> | Enable read capacity scaling for this table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.autoScaleWriteCapacity">autoScaleWriteCapacity</a></code> | Enable write capacity scaling for this table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.schema">schema</a></code> | Get schema attributes of table or index. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.schemaV2">schemaV2</a></code> | Get schema attributes of table or index. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmAgeOfOldestUnreplicatedRecord">alarmAgeOfOldestUnreplicatedRecord</a></code> | Creates an alarm that monitors the AgeOfOldestUnreplicatedRecord for the DynamoDb table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmFailedToReplicateRecordCount">alarmFailedToReplicateRecordCount</a></code> | Creates an alarm that monitors the FailedToReplicateRecordCount for the DynamoDb table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmReadThrottleEvents">alarmReadThrottleEvents</a></code> | Creates an alarm that monitors the ReadThrottleEvents for the DynamoDb table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmSystemErrors">alarmSystemErrors</a></code> | Creates an alarm that monitors the SystemErrors for the DynamoDb table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmThrottledPutRecordCount">alarmThrottledPutRecordCount</a></code> | Creates an alarm that monitors the ThrottledPutRecordCount for the DynamoDb table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmWriteThrottleEvents">alarmWriteThrottleEvents</a></code> | Creates an alarm that monitors the WriteThrottleEvents for the DynamoDb table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the DynamoDb Table. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addToResourcePolicy` <a name="addToResourcePolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.addToResourcePolicy"></a>

```typescript
public addToResourcePolicy(statement: PolicyStatement): AddToResourcePolicyResult
```

Adds a statement to the resource policy associated with this table.

A resource policy will be automatically created upon the first call to `addToResourcePolicy`.

Note that this does not work with imported tables.

###### `statement`<sup>Required</sup> <a name="statement" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.addToResourcePolicy.parameter.statement"></a>

- *Type:* aws-cdk-lib.aws_iam.PolicyStatement

The policy statement to add.

---

##### `grant` <a name="grant" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grant"></a>

```typescript
public grant(grantee: IGrantable, actions: ...string[]): Grant
```

Adds an IAM policy statement associated with this table to an IAM principal's policy.

If `encryptionKey` is present, appropriate grants to the key needs to be added
separately using the `table.encryptionKey.grant*` methods.
[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grant.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal (no-op if undefined).

---

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grant.parameter.actions"></a>

- *Type:* ...string[]

The set of actions to allow (i.e. "dynamodb:PutItem", "dynamodb:GetItem", ...).

---

##### `grantFullAccess` <a name="grantFullAccess" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantFullAccess"></a>

```typescript
public grantFullAccess(grantee: IGrantable): Grant
```

Permits all DynamoDB operations ("dynamodb:*") to an IAM principal.

Appropriate grants will also be added to the customer-managed KMS key
if one was configured.


The use of this method is discouraged. Please use `grants.fullAccess()` instead.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantFullAccess.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal to grant access to.

---

##### `grantOnKey` <a name="grantOnKey" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantOnKey"></a>

```typescript
public grantOnKey(grantee: IGrantable, actions: ...string[]): GrantOnKeyResult
```

Gives permissions to a grantable entity to perform actions on the encryption key.

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantOnKey.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantOnKey.parameter.actions"></a>

- *Type:* ...string[]

---

##### `grantReadData` <a name="grantReadData" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantReadData"></a>

```typescript
public grantReadData(grantee: IGrantable): Grant
```

Permits an IAM principal all data read operations from this table: BatchGetItem, GetRecords, GetShardIterator, Query, GetItem, Scan, DescribeTable.

Appropriate grants will also be added to the customer-managed KMS key
if one was configured.


The use of this method is discouraged. Please use `grants.readData()` instead.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantReadData.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal to grant access to.

---

##### `grantReadWriteData` <a name="grantReadWriteData" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantReadWriteData"></a>

```typescript
public grantReadWriteData(grantee: IGrantable): Grant
```

Permits an IAM principal to all data read/write operations to this table.

BatchGetItem, GetRecords, GetShardIterator, Query, GetItem, Scan,
BatchWriteItem, PutItem, UpdateItem, DeleteItem, DescribeTable

Appropriate grants will also be added to the customer-managed KMS key
if one was configured.


The use of this method is discouraged. Please use `grants.readWriteData()` instead.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantReadWriteData.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal to grant access to.

---

##### `grantStream` <a name="grantStream" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantStream"></a>

```typescript
public grantStream(grantee: IGrantable, actions: ...string[]): Grant
```

Adds an IAM policy statement associated with this table's stream to an IAM principal's policy.

If `encryptionKey` is present, appropriate grants to the key needs to be added
separately using the `table.encryptionKey.grant*` methods.


The use of this method is discouraged. Please use `streamGrants.stream()` instead.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantStream.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal (no-op if undefined).

---

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantStream.parameter.actions"></a>

- *Type:* ...string[]

The set of actions to allow (i.e. "dynamodb:DescribeStream", "dynamodb:GetRecords", ...).

---

##### `grantStreamRead` <a name="grantStreamRead" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantStreamRead"></a>

```typescript
public grantStreamRead(grantee: IGrantable): Grant
```

Permits an IAM principal all stream data read operations for this table's stream: DescribeStream, GetRecords, GetShardIterator, ListStreams.

Appropriate grants will also be added to the customer-managed KMS key
if one was configured.


The use of this method is discouraged. Please use `streamGrants.streamRead()` instead.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantStreamRead.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal to grant access to.

---

##### `grantTableListStreams` <a name="grantTableListStreams" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantTableListStreams"></a>

```typescript
public grantTableListStreams(grantee: IGrantable): Grant
```

Permits an IAM Principal to list streams attached to current dynamodb table.

The use of this method is discouraged. Please use `streamGrants.tableListStreams()` instead.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantTableListStreams.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal (no-op if undefined).

---

##### `grantWriteData` <a name="grantWriteData" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantWriteData"></a>

```typescript
public grantWriteData(grantee: IGrantable): Grant
```

Permits an IAM principal all data write operations to this table: BatchWriteItem, PutItem, UpdateItem, DeleteItem, DescribeTable.

Appropriate grants will also be added to the customer-managed KMS key
if one was configured.


The use of this method is discouraged. Please use `grants.writeData()` instead.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.grantWriteData.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

The principal to grant access to.

---

##### `metric` <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metric"></a>

```typescript
public metric(metricName: string, props?: MetricOptions): Metric
```

Return the given named metric for this Table.

By default, the metric will be calculated as a sum over a period of 5 minutes.
You can customize this by using the `statistic` and `period` properties.

###### `metricName`<sup>Required</sup> <a name="metricName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metric.parameter.metricName"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metric.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricConditionalCheckFailedRequests` <a name="metricConditionalCheckFailedRequests" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricConditionalCheckFailedRequests"></a>

```typescript
public metricConditionalCheckFailedRequests(props?: MetricOptions): Metric
```

Metric for the conditional check failed requests this table.

By default, the metric will be calculated as a sum over a period of 5 minutes.
You can customize this by using the `statistic` and `period` properties.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricConditionalCheckFailedRequests.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricConsumedReadCapacityUnits` <a name="metricConsumedReadCapacityUnits" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricConsumedReadCapacityUnits"></a>

```typescript
public metricConsumedReadCapacityUnits(props?: MetricOptions): Metric
```

Metric for the consumed read capacity units this table.

By default, the metric will be calculated as a sum over a period of 5 minutes.
You can customize this by using the `statistic` and `period` properties.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricConsumedReadCapacityUnits.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricConsumedWriteCapacityUnits` <a name="metricConsumedWriteCapacityUnits" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricConsumedWriteCapacityUnits"></a>

```typescript
public metricConsumedWriteCapacityUnits(props?: MetricOptions): Metric
```

Metric for the consumed write capacity units this table.

By default, the metric will be calculated as a sum over a period of 5 minutes.
You can customize this by using the `statistic` and `period` properties.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricConsumedWriteCapacityUnits.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricSuccessfulRequestLatency` <a name="metricSuccessfulRequestLatency" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricSuccessfulRequestLatency"></a>

```typescript
public metricSuccessfulRequestLatency(props?: MetricOptions): Metric
```

Metric for the successful request latency this table.

By default, the metric will be calculated as an average over a period of 5 minutes.
You can customize this by using the `statistic` and `period` properties.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricSuccessfulRequestLatency.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### ~~`metricSystemErrors`~~ <a name="metricSystemErrors" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricSystemErrors"></a>

```typescript
public metricSystemErrors(props?: MetricOptions): Metric
```

Metric for the system errors this table.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricSystemErrors.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricSystemErrorsForOperations` <a name="metricSystemErrorsForOperations" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricSystemErrorsForOperations"></a>

```typescript
public metricSystemErrorsForOperations(props?: SystemErrorsForOperationsMetricOptions): IMetric
```

Metric for the system errors this table.

This will sum errors across all possible operations.
Note that by default, each individual metric will be calculated as a sum over a period of 5 minutes.
You can customize this by using the `statistic` and `period` properties.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricSystemErrorsForOperations.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_dynamodb.SystemErrorsForOperationsMetricOptions

---

##### ~~`metricThrottledRequests`~~ <a name="metricThrottledRequests" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricThrottledRequests"></a>

```typescript
public metricThrottledRequests(props?: MetricOptions): Metric
```

How many requests are throttled on this table.

Default: sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricThrottledRequests.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricThrottledRequestsForOperation` <a name="metricThrottledRequestsForOperation" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricThrottledRequestsForOperation"></a>

```typescript
public metricThrottledRequestsForOperation(operation: string, props?: MetricOptions): Metric
```

How many requests are throttled on this table, for the given operation.

Default: sum over 5 minutes

###### `operation`<sup>Required</sup> <a name="operation" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricThrottledRequestsForOperation.parameter.operation"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricThrottledRequestsForOperation.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricThrottledRequestsForOperations` <a name="metricThrottledRequestsForOperations" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricThrottledRequestsForOperations"></a>

```typescript
public metricThrottledRequestsForOperations(props?: OperationsMetricOptions): IMetric
```

How many requests are throttled on this table.

This will sum errors across all possible operations.
Note that by default, each individual metric will be calculated as a sum over a period of 5 minutes.
You can customize this by using the `statistic` and `period` properties.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricThrottledRequestsForOperations.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_dynamodb.OperationsMetricOptions

---

##### `metricUserErrors` <a name="metricUserErrors" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricUserErrors"></a>

```typescript
public metricUserErrors(props?: MetricOptions): Metric
```

Metric for the user errors.

Note that this metric reports user errors across all
the tables in the account and region the table resides in.

By default, the metric will be calculated as a sum over a period of 5 minutes.
You can customize this by using the `statistic` and `period` properties.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.metricUserErrors.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `addGlobalSecondaryIndex` <a name="addGlobalSecondaryIndex" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.addGlobalSecondaryIndex"></a>

```typescript
public addGlobalSecondaryIndex(props: GlobalSecondaryIndexProps): void
```

Add a global secondary index of table.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.addGlobalSecondaryIndex.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_dynamodb.GlobalSecondaryIndexProps

the property of global secondary index.

---

##### `addLocalSecondaryIndex` <a name="addLocalSecondaryIndex" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.addLocalSecondaryIndex"></a>

```typescript
public addLocalSecondaryIndex(props: LocalSecondaryIndexProps): void
```

Add a local secondary index of table.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.addLocalSecondaryIndex.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_dynamodb.LocalSecondaryIndexProps

the property of local secondary index.

---

##### `autoScaleGlobalSecondaryIndexReadCapacity` <a name="autoScaleGlobalSecondaryIndexReadCapacity" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.autoScaleGlobalSecondaryIndexReadCapacity"></a>

```typescript
public autoScaleGlobalSecondaryIndexReadCapacity(indexName: string, props: EnableScalingProps): IScalableTableAttribute
```

Enable read capacity scaling for the given GSI.

###### `indexName`<sup>Required</sup> <a name="indexName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.autoScaleGlobalSecondaryIndexReadCapacity.parameter.indexName"></a>

- *Type:* string

---

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.autoScaleGlobalSecondaryIndexReadCapacity.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_dynamodb.EnableScalingProps

---

##### `autoScaleGlobalSecondaryIndexWriteCapacity` <a name="autoScaleGlobalSecondaryIndexWriteCapacity" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.autoScaleGlobalSecondaryIndexWriteCapacity"></a>

```typescript
public autoScaleGlobalSecondaryIndexWriteCapacity(indexName: string, props: EnableScalingProps): IScalableTableAttribute
```

Enable write capacity scaling for the given GSI.

###### `indexName`<sup>Required</sup> <a name="indexName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.autoScaleGlobalSecondaryIndexWriteCapacity.parameter.indexName"></a>

- *Type:* string

---

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.autoScaleGlobalSecondaryIndexWriteCapacity.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_dynamodb.EnableScalingProps

---

##### `autoScaleReadCapacity` <a name="autoScaleReadCapacity" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.autoScaleReadCapacity"></a>

```typescript
public autoScaleReadCapacity(props: EnableScalingProps): IScalableTableAttribute
```

Enable read capacity scaling for this table.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.autoScaleReadCapacity.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_dynamodb.EnableScalingProps

---

##### `autoScaleWriteCapacity` <a name="autoScaleWriteCapacity" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.autoScaleWriteCapacity"></a>

```typescript
public autoScaleWriteCapacity(props: EnableScalingProps): IScalableTableAttribute
```

Enable write capacity scaling for this table.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.autoScaleWriteCapacity.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_dynamodb.EnableScalingProps

---

##### ~~`schema`~~ <a name="schema" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.schema"></a>

```typescript
public schema(indexName?: string): SchemaOptions
```

Get schema attributes of table or index.

###### `indexName`<sup>Optional</sup> <a name="indexName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.schema.parameter.indexName"></a>

- *Type:* string

---

##### `schemaV2` <a name="schemaV2" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.schemaV2"></a>

```typescript
public schemaV2(indexName?: string): KeySchema
```

Get schema attributes of table or index.

###### `indexName`<sup>Optional</sup> <a name="indexName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.schemaV2.parameter.indexName"></a>

- *Type:* string

---

##### `alarmAgeOfOldestUnreplicatedRecord` <a name="alarmAgeOfOldestUnreplicatedRecord" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmAgeOfOldestUnreplicatedRecord"></a>

```typescript
public alarmAgeOfOldestUnreplicatedRecord(props: DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig): DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm
```

Creates an alarm that monitors the AgeOfOldestUnreplicatedRecord for the DynamoDb table.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmAgeOfOldestUnreplicatedRecord.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig">DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig</a>

---

##### `alarmFailedToReplicateRecordCount` <a name="alarmFailedToReplicateRecordCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmFailedToReplicateRecordCount"></a>

```typescript
public alarmFailedToReplicateRecordCount(props: DynamoDbFailedToReplicateRecordCountAlarmConfig): DynamoDbTableFailedToReplicateRecordCountAlarm
```

Creates an alarm that monitors the FailedToReplicateRecordCount for the DynamoDb table.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmFailedToReplicateRecordCount.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig">DynamoDbFailedToReplicateRecordCountAlarmConfig</a>

---

##### `alarmReadThrottleEvents` <a name="alarmReadThrottleEvents" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmReadThrottleEvents"></a>

```typescript
public alarmReadThrottleEvents(props: DynamoDbReadThrottleEventsAlarmConfig): DynamoDbTableReadThrottleEventsAlarm
```

Creates an alarm that monitors the ReadThrottleEvents for the DynamoDb table.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmReadThrottleEvents.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig">DynamoDbReadThrottleEventsAlarmConfig</a>

---

##### `alarmSystemErrors` <a name="alarmSystemErrors" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmSystemErrors"></a>

```typescript
public alarmSystemErrors(props: DynamoDbSystemErrorsAlarmConfig): DynamoDbTableSystemErrorsAlarm
```

Creates an alarm that monitors the SystemErrors for the DynamoDb table.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmSystemErrors.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig">DynamoDbSystemErrorsAlarmConfig</a>

---

##### `alarmThrottledPutRecordCount` <a name="alarmThrottledPutRecordCount" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmThrottledPutRecordCount"></a>

```typescript
public alarmThrottledPutRecordCount(props: DynamoDbThrottledPutRecordCountAlarmConfig): DynamoDbTableThrottledPutRecordCountAlarm
```

Creates an alarm that monitors the ThrottledPutRecordCount for the DynamoDb table.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmThrottledPutRecordCount.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig">DynamoDbThrottledPutRecordCountAlarmConfig</a>

---

##### `alarmWriteThrottleEvents` <a name="alarmWriteThrottleEvents" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmWriteThrottleEvents"></a>

```typescript
public alarmWriteThrottleEvents(props: DynamoDbWriteThrottleEventsAlarmConfig): DynamoDbTableWriteThrottleEventsAlarm
```

Creates an alarm that monitors the WriteThrottleEvents for the DynamoDb table.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.alarmWriteThrottleEvents.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig">DynamoDbWriteThrottleEventsAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: DynamoDbTableRecommendedAlarmsConfig): DynamoDbTableRecommendedAlarms
```

Creates the recommended alarms for the DynamoDb Table.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#DynamoDB](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#DynamoDB)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig">DynamoDbTableRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.fromTableArn">fromTableArn</a></code> | Creates a Table construct that represents an external table via table arn. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.fromTableAttributes">fromTableAttributes</a></code> | Creates a Table construct that represents an external table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.fromTableName">fromTableName</a></code> | Creates a Table construct that represents an external table via table name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.isConstruct"></a>

```typescript
import { Table } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Table.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.isOwnedResource"></a>

```typescript
import { Table } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Table.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.isResource"></a>

```typescript
import { Table } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Table.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromTableArn` <a name="fromTableArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.fromTableArn"></a>

```typescript
import { Table } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Table.fromTableArn(scope: Construct, id: string, tableArn: string)
```

Creates a Table construct that represents an external table via table arn.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.fromTableArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.fromTableArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `tableArn`<sup>Required</sup> <a name="tableArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.fromTableArn.parameter.tableArn"></a>

- *Type:* string

The table's ARN.

---

##### `fromTableAttributes` <a name="fromTableAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.fromTableAttributes"></a>

```typescript
import { Table } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Table.fromTableAttributes(scope: Construct, id: string, attrs: TableAttributes)
```

Creates a Table construct that represents an external table.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.fromTableAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.fromTableAttributes.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.fromTableAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_dynamodb.TableAttributes

A `TableAttributes` object.

---

##### `fromTableName` <a name="fromTableName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.fromTableName"></a>

```typescript
import { Table } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Table.fromTableName(scope: Construct, id: string, tableName: string)
```

Creates a Table construct that represents an external table via table name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.fromTableName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.fromTableName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `tableName`<sup>Required</sup> <a name="tableName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.fromTableName.parameter.tableName"></a>

- *Type:* string

The table's name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.grants">grants</a></code> | <code>aws-cdk-lib.aws_dynamodb.TableGrants</code> | Grant a predefined set of permissions on this Table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.streamGrants">streamGrants</a></code> | <code>aws-cdk-lib.aws_dynamodb.StreamGrants</code> | Grant a predefined set of permissions on this Table's Stream, if present. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.tableArn">tableArn</a></code> | <code>string</code> | Arn of the dynamodb table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.tableName">tableName</a></code> | <code>string</code> | Table name of the dynamodb table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.tableRef">tableRef</a></code> | <code>aws-cdk-lib.interfaces.aws_dynamodb.TableReference</code> | A reference to a Table resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.encryptionKey">encryptionKey</a></code> | <code>aws-cdk-lib.aws_kms.IKey</code> | KMS encryption key, if this table uses a customer-managed encryption key. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.regions">regions</a></code> | <code>string[]</code> | Additional regions other than the main one that this table is replicated to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.tableStreamArn">tableStreamArn</a></code> | <code>string</code> | ARN of the table's stream, if there is one. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.resourcePolicy">resourcePolicy</a></code> | <code>aws-cdk-lib.aws_iam.PolicyDocument</code> | Resource policy to assign to DynamoDB Table. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `grants`<sup>Required</sup> <a name="grants" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.grants"></a>

```typescript
public readonly grants: TableGrants;
```

- *Type:* aws-cdk-lib.aws_dynamodb.TableGrants

Grant a predefined set of permissions on this Table.

---

##### `streamGrants`<sup>Required</sup> <a name="streamGrants" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.streamGrants"></a>

```typescript
public readonly streamGrants: StreamGrants;
```

- *Type:* aws-cdk-lib.aws_dynamodb.StreamGrants

Grant a predefined set of permissions on this Table's Stream, if present.

Will throw if the Table has not been configured for streaming.

---

##### `tableArn`<sup>Required</sup> <a name="tableArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.tableArn"></a>

```typescript
public readonly tableArn: string;
```

- *Type:* string

Arn of the dynamodb table.

---

##### `tableName`<sup>Required</sup> <a name="tableName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.tableName"></a>

```typescript
public readonly tableName: string;
```

- *Type:* string

Table name of the dynamodb table.

---

##### `tableRef`<sup>Required</sup> <a name="tableRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.tableRef"></a>

```typescript
public readonly tableRef: TableReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_dynamodb.TableReference

A reference to a Table resource.

---

##### `encryptionKey`<sup>Optional</sup> <a name="encryptionKey" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.encryptionKey"></a>

```typescript
public readonly encryptionKey: IKey;
```

- *Type:* aws-cdk-lib.aws_kms.IKey

KMS encryption key, if this table uses a customer-managed encryption key.

---

##### `regions`<sup>Optional</sup> <a name="regions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.regions"></a>

```typescript
public readonly regions: string[];
```

- *Type:* string[]

Additional regions other than the main one that this table is replicated to.

---

##### `tableStreamArn`<sup>Optional</sup> <a name="tableStreamArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.tableStreamArn"></a>

```typescript
public readonly tableStreamArn: string;
```

- *Type:* string

ARN of the table's stream, if there is one.

---

##### `resourcePolicy`<sup>Optional</sup> <a name="resourcePolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.resourcePolicy"></a>

```typescript
public readonly resourcePolicy: PolicyDocument;
```

- *Type:* aws-cdk-lib.aws_iam.PolicyDocument
- *Default:* No resource policy statements are added to the created table.

Resource policy to assign to DynamoDB Table.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-resourcepolicy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-resourcepolicy.html)

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.Table.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### Topic <a name="Topic" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic"></a>

An extension of the SNS topic construct that provides helper methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.Initializer"></a>

```typescript
import { Topic } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new Topic(scope: Construct, id: string, props?: TopicProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_sns.TopicProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_sns.TopicProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.addSubscription">addSubscription</a></code> | Subscribe some endpoint to this topic. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.addToResourcePolicy">addToResourcePolicy</a></code> | Adds a statement to the IAM resource policy associated with this topic. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.bindAsNotificationRuleTarget">bindAsNotificationRuleTarget</a></code> | Represents a notification target That allows SNS topic to associate with this rule target. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.grantOnKey">grantOnKey</a></code> | Gives permissions to a grantable entity to perform actions on the encryption key. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.grantPublish">grantPublish</a></code> | Grant topic publishing permissions to the given identity. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.grantSubscribe">grantSubscribe</a></code> | Grant topic subscribing permissions to the given identity. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metric">metric</a></code> | Return the given named metric for this Topic. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfMessagesPublished">metricNumberOfMessagesPublished</a></code> | The number of messages published to your Amazon SNS topics. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfNotificationsDelivered">metricNumberOfNotificationsDelivered</a></code> | The number of messages successfully delivered from your Amazon SNS topics to subscribing endpoints. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfNotificationsFailed">metricNumberOfNotificationsFailed</a></code> | The number of messages that Amazon SNS failed to deliver. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfNotificationsFilteredOut">metricNumberOfNotificationsFilteredOut</a></code> | The number of messages that were rejected by subscription filter policies. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfNotificationsFilteredOutInvalidAttributes">metricNumberOfNotificationsFilteredOutInvalidAttributes</a></code> | The number of messages that were rejected by subscription filter policies because the messages' attributes are invalid. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfNotificationsFilteredOutNoMessageAttributes">metricNumberOfNotificationsFilteredOutNoMessageAttributes</a></code> | The number of messages that were rejected by subscription filter policies because the messages have no attributes. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricPublishSize">metricPublishSize</a></code> | Metric for the size of messages published through this topic. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricSMSMonthToDateSpentUSD">metricSMSMonthToDateSpentUSD</a></code> | The charges you have accrued since the start of the current calendar month for sending SMS messages. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricSMSSuccessRate">metricSMSSuccessRate</a></code> | The rate of successful SMS message deliveries. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.addLoggingConfig">addLoggingConfig</a></code> | Adds a delivery status logging configuration to the topic. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfMessagesPublished">alarmNumberOfMessagesPublished</a></code> | Creates an alarm for the NumberOfMessagesPublished metric. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsDelivered">alarmNumberOfNotificationsDelivered</a></code> | Creates an alarm for the NumberOfNotificationsDelivered metric. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsFailed">alarmNumberOfNotificationsFailed</a></code> | Creates an alarm for the NumberOfNotificationsFailed metric. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsFailedToRedriveToDlq">alarmNumberOfNotificationsFailedToRedriveToDlq</a></code> | Creates an alarm for the NumberOfNotificationsFailedToRedriveToDlq metric. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsFilteredOutInvalidAttributes">alarmNumberOfNotificationsFilteredOutInvalidAttributes</a></code> | Creates an alarm for the NumberOfNotificationsFilteredOutInvalidAttributes metric. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsFilteredOutInvalidMessageBody">alarmNumberOfNotificationsFilteredOutInvalidMessageBody</a></code> | Creates an alarm for the NumberOfNotificationsFilteredOutInvalidMessageBody metric. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsRedrivenToDlq">alarmNumberOfNotificationsRedrivenToDlq</a></code> | Creates an alarm for the NumberOfNotificationsRedrivenToDlq metric. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates recommended alarms for the SNS topic. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addSubscription` <a name="addSubscription" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.addSubscription"></a>

```typescript
public addSubscription(topicSubscription: ITopicSubscription): Subscription
```

Subscribe some endpoint to this topic.

###### `topicSubscription`<sup>Required</sup> <a name="topicSubscription" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.addSubscription.parameter.topicSubscription"></a>

- *Type:* aws-cdk-lib.aws_sns.ITopicSubscription

---

##### `addToResourcePolicy` <a name="addToResourcePolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.addToResourcePolicy"></a>

```typescript
public addToResourcePolicy(statement: PolicyStatement): AddToResourcePolicyResult
```

Adds a statement to the IAM resource policy associated with this topic.

If this topic was created in this stack (`new Topic`), a topic policy
will be automatically created upon the first call to `addToResourcePolicy`.
However, if `enforceSSL` is set to `true`, the policy has already been created
before the first call to this method.

If the topic is imported (`Topic.import`), then this is a no-op.

###### `statement`<sup>Required</sup> <a name="statement" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.addToResourcePolicy.parameter.statement"></a>

- *Type:* aws-cdk-lib.aws_iam.PolicyStatement

---

##### `bindAsNotificationRuleTarget` <a name="bindAsNotificationRuleTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.bindAsNotificationRuleTarget"></a>

```typescript
public bindAsNotificationRuleTarget(_scope: Construct): NotificationRuleTargetConfig
```

Represents a notification target That allows SNS topic to associate with this rule target.

###### `_scope`<sup>Required</sup> <a name="_scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.bindAsNotificationRuleTarget.parameter._scope"></a>

- *Type:* constructs.Construct

---

##### `grantOnKey` <a name="grantOnKey" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.grantOnKey"></a>

```typescript
public grantOnKey(grantee: IGrantable, actions: ...string[]): GrantOnKeyResult
```

Gives permissions to a grantable entity to perform actions on the encryption key.

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.grantOnKey.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.grantOnKey.parameter.actions"></a>

- *Type:* ...string[]

---

##### `grantPublish` <a name="grantPublish" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.grantPublish"></a>

```typescript
public grantPublish(grantee: IGrantable): Grant
```

Grant topic publishing permissions to the given identity.

The use of this method is discouraged. Please use `grants.publish()` instead.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.grantPublish.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

##### `grantSubscribe` <a name="grantSubscribe" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.grantSubscribe"></a>

```typescript
public grantSubscribe(grantee: IGrantable): Grant
```

Grant topic subscribing permissions to the given identity.

The use of this method is discouraged. Please use `grants.subscribe()` instead.

[disable-awslint:no-grants]

###### `grantee`<sup>Required</sup> <a name="grantee" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.grantSubscribe.parameter.grantee"></a>

- *Type:* aws-cdk-lib.aws_iam.IGrantable

---

##### `metric` <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metric"></a>

```typescript
public metric(metricName: string, props?: MetricOptions): Metric
```

Return the given named metric for this Topic.

###### `metricName`<sup>Required</sup> <a name="metricName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metric.parameter.metricName"></a>

- *Type:* string

---

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metric.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricNumberOfMessagesPublished` <a name="metricNumberOfMessagesPublished" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfMessagesPublished"></a>

```typescript
public metricNumberOfMessagesPublished(props?: MetricOptions): Metric
```

The number of messages published to your Amazon SNS topics.

Sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfMessagesPublished.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricNumberOfNotificationsDelivered` <a name="metricNumberOfNotificationsDelivered" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfNotificationsDelivered"></a>

```typescript
public metricNumberOfNotificationsDelivered(props?: MetricOptions): Metric
```

The number of messages successfully delivered from your Amazon SNS topics to subscribing endpoints.

Sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfNotificationsDelivered.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricNumberOfNotificationsFailed` <a name="metricNumberOfNotificationsFailed" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfNotificationsFailed"></a>

```typescript
public metricNumberOfNotificationsFailed(props?: MetricOptions): Metric
```

The number of messages that Amazon SNS failed to deliver.

Sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfNotificationsFailed.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricNumberOfNotificationsFilteredOut` <a name="metricNumberOfNotificationsFilteredOut" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfNotificationsFilteredOut"></a>

```typescript
public metricNumberOfNotificationsFilteredOut(props?: MetricOptions): Metric
```

The number of messages that were rejected by subscription filter policies.

Sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfNotificationsFilteredOut.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricNumberOfNotificationsFilteredOutInvalidAttributes` <a name="metricNumberOfNotificationsFilteredOutInvalidAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfNotificationsFilteredOutInvalidAttributes"></a>

```typescript
public metricNumberOfNotificationsFilteredOutInvalidAttributes(props?: MetricOptions): Metric
```

The number of messages that were rejected by subscription filter policies because the messages' attributes are invalid.

Sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfNotificationsFilteredOutInvalidAttributes.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricNumberOfNotificationsFilteredOutNoMessageAttributes` <a name="metricNumberOfNotificationsFilteredOutNoMessageAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfNotificationsFilteredOutNoMessageAttributes"></a>

```typescript
public metricNumberOfNotificationsFilteredOutNoMessageAttributes(props?: MetricOptions): Metric
```

The number of messages that were rejected by subscription filter policies because the messages have no attributes.

Sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricNumberOfNotificationsFilteredOutNoMessageAttributes.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricPublishSize` <a name="metricPublishSize" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricPublishSize"></a>

```typescript
public metricPublishSize(props?: MetricOptions): Metric
```

Metric for the size of messages published through this topic.

Average over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricPublishSize.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricSMSMonthToDateSpentUSD` <a name="metricSMSMonthToDateSpentUSD" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricSMSMonthToDateSpentUSD"></a>

```typescript
public metricSMSMonthToDateSpentUSD(props?: MetricOptions): Metric
```

The charges you have accrued since the start of the current calendar month for sending SMS messages.

Maximum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricSMSMonthToDateSpentUSD.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `metricSMSSuccessRate` <a name="metricSMSSuccessRate" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricSMSSuccessRate"></a>

```typescript
public metricSMSSuccessRate(props?: MetricOptions): Metric
```

The rate of successful SMS message deliveries.

Sum over 5 minutes

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.metricSMSSuccessRate.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_cloudwatch.MetricOptions

---

##### `addLoggingConfig` <a name="addLoggingConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.addLoggingConfig"></a>

```typescript
public addLoggingConfig(config: LoggingConfig): void
```

Adds a delivery status logging configuration to the topic.

###### `config`<sup>Required</sup> <a name="config" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.addLoggingConfig.parameter.config"></a>

- *Type:* aws-cdk-lib.aws_sns.LoggingConfig

---

##### `alarmNumberOfMessagesPublished` <a name="alarmNumberOfMessagesPublished" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfMessagesPublished"></a>

```typescript
public alarmNumberOfMessagesPublished(props: SnsNumberOfMessagesPublishedAlarmConfig): SnsNumberOfMessagesPublishedAlarm
```

Creates an alarm for the NumberOfMessagesPublished metric.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfMessagesPublished.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig">SnsNumberOfMessagesPublishedAlarmConfig</a>

---

##### `alarmNumberOfNotificationsDelivered` <a name="alarmNumberOfNotificationsDelivered" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsDelivered"></a>

```typescript
public alarmNumberOfNotificationsDelivered(props: SnsNumberOfNotificationsDeliveredAlarmConfig): SnsNumberOfNotificationsDeliveredAlarm
```

Creates an alarm for the NumberOfNotificationsDelivered metric.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsDelivered.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig">SnsNumberOfNotificationsDeliveredAlarmConfig</a>

---

##### `alarmNumberOfNotificationsFailed` <a name="alarmNumberOfNotificationsFailed" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsFailed"></a>

```typescript
public alarmNumberOfNotificationsFailed(props: SnsNumberOfNotificationsFailedAlarmConfig): SnsNumberOfNotificationsFailedAlarm
```

Creates an alarm for the NumberOfNotificationsFailed metric.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsFailed.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig">SnsNumberOfNotificationsFailedAlarmConfig</a>

---

##### `alarmNumberOfNotificationsFailedToRedriveToDlq` <a name="alarmNumberOfNotificationsFailedToRedriveToDlq" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsFailedToRedriveToDlq"></a>

```typescript
public alarmNumberOfNotificationsFailedToRedriveToDlq(props?: SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig): SnsNumberOfNotificationsFailedToRedriveToDlqAlarm
```

Creates an alarm for the NumberOfNotificationsFailedToRedriveToDlq metric.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsFailedToRedriveToDlq.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig">SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig</a>

---

##### `alarmNumberOfNotificationsFilteredOutInvalidAttributes` <a name="alarmNumberOfNotificationsFilteredOutInvalidAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsFilteredOutInvalidAttributes"></a>

```typescript
public alarmNumberOfNotificationsFilteredOutInvalidAttributes(props?: SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig): SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm
```

Creates an alarm for the NumberOfNotificationsFilteredOutInvalidAttributes metric.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsFilteredOutInvalidAttributes.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig">SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig</a>

---

##### `alarmNumberOfNotificationsFilteredOutInvalidMessageBody` <a name="alarmNumberOfNotificationsFilteredOutInvalidMessageBody" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsFilteredOutInvalidMessageBody"></a>

```typescript
public alarmNumberOfNotificationsFilteredOutInvalidMessageBody(props?: SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig): SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm
```

Creates an alarm for the NumberOfNotificationsFilteredOutInvalidMessageBody metric.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsFilteredOutInvalidMessageBody.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig">SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig</a>

---

##### `alarmNumberOfNotificationsRedrivenToDlq` <a name="alarmNumberOfNotificationsRedrivenToDlq" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsRedrivenToDlq"></a>

```typescript
public alarmNumberOfNotificationsRedrivenToDlq(props?: SnsNumberOfNotificationsRedrivenToDlqAlarmConfig): SnsNumberOfNotificationsRedrivenToDlqAlarm
```

Creates an alarm for the NumberOfNotificationsRedrivenToDlq metric.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.alarmNumberOfNotificationsRedrivenToDlq.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig">SnsNumberOfNotificationsRedrivenToDlqAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: SnsRecommendedAlarmsConfig): SnsRecommendedAlarms
```

Creates recommended alarms for the SNS topic.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#SNS)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig">SnsRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.fromTopicArn">fromTopicArn</a></code> | Import an existing SNS topic provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.fromTopicAttributes">fromTopicAttributes</a></code> | Import an existing SNS topic provided a topic attributes. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.isConstruct"></a>

```typescript
import { Topic } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Topic.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.isOwnedResource"></a>

```typescript
import { Topic } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Topic.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.isResource"></a>

```typescript
import { Topic } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Topic.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromTopicArn` <a name="fromTopicArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.fromTopicArn"></a>

```typescript
import { Topic } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Topic.fromTopicArn(scope: Construct, id: string, topicArn: string)
```

Import an existing SNS topic provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.fromTopicArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct.

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.fromTopicArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `topicArn`<sup>Required</sup> <a name="topicArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.fromTopicArn.parameter.topicArn"></a>

- *Type:* string

topic ARN (i.e. arn:aws:sns:us-east-2:444455556666:MyTopic).

---

##### `fromTopicAttributes` <a name="fromTopicAttributes" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.fromTopicAttributes"></a>

```typescript
import { Topic } from '@renovosolutions/cdk-library-cloudwatch-alarms'

Topic.fromTopicAttributes(scope: Construct, id: string, attrs: TopicAttributes)
```

Import an existing SNS topic provided a topic attributes.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.fromTopicAttributes.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct.

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.fromTopicAttributes.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `attrs`<sup>Required</sup> <a name="attrs" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.fromTopicAttributes.parameter.attrs"></a>

- *Type:* aws-cdk-lib.aws_sns.TopicAttributes

the attributes of the topic to import.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.contentBasedDeduplication">contentBasedDeduplication</a></code> | <code>boolean</code> | Enables content-based deduplication for FIFO topics. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.fifo">fifo</a></code> | <code>boolean</code> | Whether this topic is an Amazon SNS FIFO queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.grants">grants</a></code> | <code>aws-cdk-lib.aws_sns.TopicGrants</code> | Collection of grant methods for a Topic. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.topicArn">topicArn</a></code> | <code>string</code> | The ARN of the topic. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.topicName">topicName</a></code> | <code>string</code> | The name of the topic. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.topicRef">topicRef</a></code> | <code>aws-cdk-lib.interfaces.aws_sns.TopicReference</code> | A reference to a Topic resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.masterKey">masterKey</a></code> | <code>aws-cdk-lib.aws_kms.IKey</code> | A KMS Key, either managed by this CDK app, or imported. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `contentBasedDeduplication`<sup>Required</sup> <a name="contentBasedDeduplication" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.contentBasedDeduplication"></a>

```typescript
public readonly contentBasedDeduplication: boolean;
```

- *Type:* boolean

Enables content-based deduplication for FIFO topics.

---

##### `fifo`<sup>Required</sup> <a name="fifo" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.fifo"></a>

```typescript
public readonly fifo: boolean;
```

- *Type:* boolean

Whether this topic is an Amazon SNS FIFO queue.

If false, this is a standard topic.

---

##### `grants`<sup>Required</sup> <a name="grants" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.grants"></a>

```typescript
public readonly grants: TopicGrants;
```

- *Type:* aws-cdk-lib.aws_sns.TopicGrants

Collection of grant methods for a Topic.

---

##### `topicArn`<sup>Required</sup> <a name="topicArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.topicArn"></a>

```typescript
public readonly topicArn: string;
```

- *Type:* string

The ARN of the topic.

---

##### `topicName`<sup>Required</sup> <a name="topicName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.topicName"></a>

```typescript
public readonly topicName: string;
```

- *Type:* string

The name of the topic.

---

##### `topicRef`<sup>Required</sup> <a name="topicRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.topicRef"></a>

```typescript
public readonly topicRef: TopicReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_sns.TopicReference

A reference to a Topic resource.

---

##### `masterKey`<sup>Optional</sup> <a name="masterKey" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.masterKey"></a>

```typescript
public readonly masterKey: IKey;
```

- *Type:* aws-cdk-lib.aws_kms.IKey

A KMS Key, either managed by this CDK app, or imported.

This property applies only to server-side encryption.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.Topic.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### VpcEndpointService <a name="VpcEndpointService" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService"></a>

An extension for the VpcEndpointService construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.Initializer"></a>

```typescript
import { VpcEndpointService } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new VpcEndpointService(scope: Construct, id: string, props: VpcEndpointServiceProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_ec2.VpcEndpointServiceProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_ec2.VpcEndpointServiceProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.alarmRstPacketsSent">alarmRstPacketsSent</a></code> | Creates an alarm that monitors the RstPacketsSent for the PrivateLink endpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the PrivateLink VpcEndpointService. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `alarmRstPacketsSent` <a name="alarmRstPacketsSent" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.alarmRstPacketsSent"></a>

```typescript
public alarmRstPacketsSent(props: PrivateLinkServicesRstPacketsSentAlarmConfig): PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm[]
```

Creates an alarm that monitors the RstPacketsSent for the PrivateLink endpoint.

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.alarmRstPacketsSent.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig">PrivateLinkServicesRstPacketsSentAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props: PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig): PrivateLinkServicesVpcEndpointServiceRecommendedAlarms
```

Creates the recommended alarms for the PrivateLink VpcEndpointService.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#PrivateLinkServices](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#PrivateLinkServices)

###### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig">PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.isResource">isResource</a></code> | Check whether the given construct is a Resource. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.isConstruct"></a>

```typescript
import { VpcEndpointService } from '@renovosolutions/cdk-library-cloudwatch-alarms'

VpcEndpointService.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.isOwnedResource"></a>

```typescript
import { VpcEndpointService } from '@renovosolutions/cdk-library-cloudwatch-alarms'

VpcEndpointService.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.isResource"></a>

```typescript
import { VpcEndpointService } from '@renovosolutions/cdk-library-cloudwatch-alarms'

VpcEndpointService.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.acceptanceRequired">acceptanceRequired</a></code> | <code>boolean</code> | Whether to require manual acceptance of new connections to the service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.allowedPrincipals">allowedPrincipals</a></code> | <code>aws-cdk-lib.aws_iam.ArnPrincipal[]</code> | One or more Principal ARNs to allow inbound connections to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.vpcEndpointServiceId">vpcEndpointServiceId</a></code> | <code>string</code> | The id of the VPC Endpoint Service, like vpce-svc-xxxxxxxxxxxxxxxx. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.vpcEndpointServiceLoadBalancers">vpcEndpointServiceLoadBalancers</a></code> | <code>aws-cdk-lib.aws_ec2.IVpcEndpointServiceLoadBalancer[]</code> | One or more network load balancers to host the service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.vpcEndpointServiceName">vpcEndpointServiceName</a></code> | <code>string</code> | The service name of the VPC Endpoint Service that clients use to connect to, like com.amazonaws.vpce.<region>.vpce-svc-xxxxxxxxxxxxxxxx. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.vpcEndpointServiceRef">vpcEndpointServiceRef</a></code> | <code>aws-cdk-lib.interfaces.aws_ec2.VPCEndpointServiceReference</code> | A reference to a VPCEndpointService resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.contributorInsightsEnabled">contributorInsightsEnabled</a></code> | <code>boolean</code> | Whether to enable the built-in Contributor Insights rules provided by AWS PrivateLink. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `acceptanceRequired`<sup>Required</sup> <a name="acceptanceRequired" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.acceptanceRequired"></a>

```typescript
public readonly acceptanceRequired: boolean;
```

- *Type:* boolean

Whether to require manual acceptance of new connections to the service.

---

##### `allowedPrincipals`<sup>Required</sup> <a name="allowedPrincipals" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.allowedPrincipals"></a>

```typescript
public readonly allowedPrincipals: ArnPrincipal[];
```

- *Type:* aws-cdk-lib.aws_iam.ArnPrincipal[]

One or more Principal ARNs to allow inbound connections to.

---

##### `vpcEndpointServiceId`<sup>Required</sup> <a name="vpcEndpointServiceId" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.vpcEndpointServiceId"></a>

```typescript
public readonly vpcEndpointServiceId: string;
```

- *Type:* string

The id of the VPC Endpoint Service, like vpce-svc-xxxxxxxxxxxxxxxx.

---

##### `vpcEndpointServiceLoadBalancers`<sup>Required</sup> <a name="vpcEndpointServiceLoadBalancers" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.vpcEndpointServiceLoadBalancers"></a>

```typescript
public readonly vpcEndpointServiceLoadBalancers: IVpcEndpointServiceLoadBalancer[];
```

- *Type:* aws-cdk-lib.aws_ec2.IVpcEndpointServiceLoadBalancer[]

One or more network load balancers to host the service.

---

##### `vpcEndpointServiceName`<sup>Required</sup> <a name="vpcEndpointServiceName" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.vpcEndpointServiceName"></a>

```typescript
public readonly vpcEndpointServiceName: string;
```

- *Type:* string

The service name of the VPC Endpoint Service that clients use to connect to, like com.amazonaws.vpce.<region>.vpce-svc-xxxxxxxxxxxxxxxx.

---

##### `vpcEndpointServiceRef`<sup>Required</sup> <a name="vpcEndpointServiceRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.vpcEndpointServiceRef"></a>

```typescript
public readonly vpcEndpointServiceRef: VPCEndpointServiceReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_ec2.VPCEndpointServiceReference

A reference to a VPCEndpointService resource.

---

##### `contributorInsightsEnabled`<sup>Optional</sup> <a name="contributorInsightsEnabled" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.contributorInsightsEnabled"></a>

```typescript
public readonly contributorInsightsEnabled: boolean;
```

- *Type:* boolean

Whether to enable the built-in Contributor Insights rules provided by AWS PrivateLink.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.DEFAULT_PREFIX">DEFAULT_PREFIX</a></code> | <code>string</code> | The default value for a VPC Endpoint Service name prefix, useful if you do not have a synthesize-time region literal available (all you have is `{ "Ref": "AWS::Region" }`). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `DEFAULT_PREFIX`<sup>Required</sup> <a name="DEFAULT_PREFIX" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.DEFAULT_PREFIX"></a>

```typescript
public readonly DEFAULT_PREFIX: string;
```

- *Type:* string

The default value for a VPC Endpoint Service name prefix, useful if you do not have a synthesize-time region literal available (all you have is `{ "Ref": "AWS::Region" }`).

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpcEndpointService.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

### VpnConnection <a name="VpnConnection" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection"></a>

An extension for the CfnVPNConnection construct that provides methods to create recommended alarms.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.Initializer"></a>

```typescript
import { VpnConnection } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new VpnConnection(scope: Construct, id: string, props: CfnVPNConnectionProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_ec2.CfnVPNConnectionProps</code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.Initializer.parameter.props"></a>

- *Type:* aws-cdk-lib.aws_ec2.CfnVPNConnectionProps

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.overrideLogicalId">overrideLogicalId</a></code> | Overrides the auto-generated logical ID with a specific ID. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addDeletionOverride">addDeletionOverride</a></code> | Syntactic sugar for `addOverride(path, undefined)`. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addDependency">addDependency</a></code> | Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addDependsOn">addDependsOn</a></code> | Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addMetadata">addMetadata</a></code> | Add a value to the CloudFormation Resource Metadata. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addOverride">addOverride</a></code> | Adds an override to the synthesized CloudFormation resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addPropertyDeletionOverride">addPropertyDeletionOverride</a></code> | Adds an override that deletes the value of a property from the resource definition. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addPropertyOverride">addPropertyOverride</a></code> | Adds an override to a resource property. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.applyRemovalPolicy">applyRemovalPolicy</a></code> | Sets the deletion policy of the resource based on the removal policy specified. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.getAtt">getAtt</a></code> | Returns a token for an runtime attribute of this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.getMetadata">getMetadata</a></code> | Retrieve a value value from the CloudFormation Resource Metadata. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.obtainDependencies">obtainDependencies</a></code> | Retrieves an array of resources this resource depends on. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.obtainResourceDependencies">obtainResourceDependencies</a></code> | Get a shallow copy of dependencies between this resource and other resources in the same stack. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.removeDependency">removeDependency</a></code> | Indicates that this resource no longer depends on another resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.replaceDependency">replaceDependency</a></code> | Replaces one dependency with another. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.inspect">inspect</a></code> | Examines the CloudFormation resource and discloses attributes. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.alarmTunnelState">alarmTunnelState</a></code> | Creates an alarm that monitors the TunnelState for the VPN vpnConnection. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.applyRecommendedAlarms">applyRecommendedAlarms</a></code> | Creates the recommended alarms for the VpnConnection. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `overrideLogicalId` <a name="overrideLogicalId" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.overrideLogicalId"></a>

```typescript
public overrideLogicalId(newLogicalId: string): void
```

Overrides the auto-generated logical ID with a specific ID.

###### `newLogicalId`<sup>Required</sup> <a name="newLogicalId" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.overrideLogicalId.parameter.newLogicalId"></a>

- *Type:* string

The new logical ID to use for this stack element.

---

##### `addDeletionOverride` <a name="addDeletionOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addDeletionOverride"></a>

```typescript
public addDeletionOverride(path: string): void
```

Syntactic sugar for `addOverride(path, undefined)`.

###### `path`<sup>Required</sup> <a name="path" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addDeletionOverride.parameter.path"></a>

- *Type:* string

The path of the value to delete.

---

##### `addDependency` <a name="addDependency" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addDependency"></a>

```typescript
public addDependency(target: CfnResource): void
```

Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.

This can be used for resources across stacks (or nested stack) boundaries
and the dependency will automatically be transferred to the relevant scope.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addDependency.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

---

##### ~~`addDependsOn`~~ <a name="addDependsOn" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addDependsOn"></a>

```typescript
public addDependsOn(target: CfnResource): void
```

Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addDependsOn.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

---

##### `addMetadata` <a name="addMetadata" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addMetadata"></a>

```typescript
public addMetadata(key: string, value: any): void
```

Add a value to the CloudFormation Resource Metadata.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.)

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addMetadata.parameter.key"></a>

- *Type:* string

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addMetadata.parameter.value"></a>

- *Type:* any

---

##### `addOverride` <a name="addOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addOverride"></a>

```typescript
public addOverride(path: string, value: any): void
```

Adds an override to the synthesized CloudFormation resource.

To add a
property override, either use `addPropertyOverride` or prefix `path` with
"Properties." (i.e. `Properties.TopicName`).

If the override is nested, separate each nested level using a dot (.) in the path parameter.
If there is an array as part of the nesting, specify the index in the path.

To include a literal `.` in the property name, prefix with a `\`. In most
programming languages you will need to write this as `"\\."` because the
`\` itself will need to be escaped.

For example,
```typescript
cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
```
would add the overrides
```json
"Properties": {
  "GlobalSecondaryIndexes": [
    {
      "Projection": {
        "NonKeyAttributes": [ "myattribute" ]
        ...
      }
      ...
    },
    {
      "ProjectionType": "INCLUDE"
      ...
    },
  ]
  ...
}
```

The `value` argument to `addOverride` will not be processed or translated
in any way. Pass raw JSON values in here with the correct capitalization
for CloudFormation. If you pass CDK classes or structs, they will be
rendered with lowercased key names, and CloudFormation will reject the
template.

###### `path`<sup>Required</sup> <a name="path" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addOverride.parameter.path"></a>

- *Type:* string

The path of the property, you can use dot notation to override values in complex types.

Any intermediate keys
will be created as needed.

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addOverride.parameter.value"></a>

- *Type:* any

The value.

Could be primitive or complex.

---

##### `addPropertyDeletionOverride` <a name="addPropertyDeletionOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addPropertyDeletionOverride"></a>

```typescript
public addPropertyDeletionOverride(propertyPath: string): void
```

Adds an override that deletes the value of a property from the resource definition.

###### `propertyPath`<sup>Required</sup> <a name="propertyPath" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addPropertyDeletionOverride.parameter.propertyPath"></a>

- *Type:* string

The path to the property.

---

##### `addPropertyOverride` <a name="addPropertyOverride" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addPropertyOverride"></a>

```typescript
public addPropertyOverride(propertyPath: string, value: any): void
```

Adds an override to a resource property.

Syntactic sugar for `addOverride("Properties.<...>", value)`.

###### `propertyPath`<sup>Required</sup> <a name="propertyPath" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addPropertyOverride.parameter.propertyPath"></a>

- *Type:* string

The path of the property.

---

###### `value`<sup>Required</sup> <a name="value" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.addPropertyOverride.parameter.value"></a>

- *Type:* any

The value.

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy?: RemovalPolicy, options?: RemovalPolicyOptions): void
```

Sets the deletion policy of the resource based on the removal policy specified.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
cases, a snapshot can be taken of the resource prior to deletion
(`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
can be found in the following link:

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options)

###### `policy`<sup>Optional</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

###### `options`<sup>Optional</sup> <a name="options" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.applyRemovalPolicy.parameter.options"></a>

- *Type:* aws-cdk-lib.RemovalPolicyOptions

---

##### `getAtt` <a name="getAtt" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.getAtt"></a>

```typescript
public getAtt(attributeName: string, typeHint?: ResolutionTypeHint): Reference
```

Returns a token for an runtime attribute of this resource.

Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
in case there is no generated attribute.

###### `attributeName`<sup>Required</sup> <a name="attributeName" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.getAtt.parameter.attributeName"></a>

- *Type:* string

The name of the attribute.

---

###### `typeHint`<sup>Optional</sup> <a name="typeHint" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.getAtt.parameter.typeHint"></a>

- *Type:* aws-cdk-lib.ResolutionTypeHint

---

##### `getMetadata` <a name="getMetadata" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.getMetadata"></a>

```typescript
public getMetadata(key: string): any
```

Retrieve a value value from the CloudFormation Resource Metadata.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html

Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.)

###### `key`<sup>Required</sup> <a name="key" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.getMetadata.parameter.key"></a>

- *Type:* string

---

##### `obtainDependencies` <a name="obtainDependencies" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.obtainDependencies"></a>

```typescript
public obtainDependencies(): (Stack | CfnResource)[]
```

Retrieves an array of resources this resource depends on.

This assembles dependencies on resources across stacks (including nested stacks)
automatically.

##### `obtainResourceDependencies` <a name="obtainResourceDependencies" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.obtainResourceDependencies"></a>

```typescript
public obtainResourceDependencies(): CfnResource[]
```

Get a shallow copy of dependencies between this resource and other resources in the same stack.

##### `removeDependency` <a name="removeDependency" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.removeDependency"></a>

```typescript
public removeDependency(target: CfnResource): void
```

Indicates that this resource no longer depends on another resource.

This can be used for resources across stacks (including nested stacks)
and the dependency will automatically be removed from the relevant scope.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.removeDependency.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

---

##### `replaceDependency` <a name="replaceDependency" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.replaceDependency"></a>

```typescript
public replaceDependency(target: CfnResource, newTarget: CfnResource): void
```

Replaces one dependency with another.

###### `target`<sup>Required</sup> <a name="target" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.replaceDependency.parameter.target"></a>

- *Type:* aws-cdk-lib.CfnResource

The dependency to replace.

---

###### `newTarget`<sup>Required</sup> <a name="newTarget" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.replaceDependency.parameter.newTarget"></a>

- *Type:* aws-cdk-lib.CfnResource

The new dependency to add.

---

##### `inspect` <a name="inspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.inspect"></a>

```typescript
public inspect(inspector: TreeInspector): void
```

Examines the CloudFormation resource and discloses attributes.

###### `inspector`<sup>Required</sup> <a name="inspector" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.inspect.parameter.inspector"></a>

- *Type:* aws-cdk-lib.TreeInspector

tree inspector to collect and process attributes.

---

##### `alarmTunnelState` <a name="alarmTunnelState" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.alarmTunnelState"></a>

```typescript
public alarmTunnelState(props?: VpnTunnelStateAlarmConfig): VpnConnectionTunnelStateAlarm
```

Creates an alarm that monitors the TunnelState for the VPN vpnConnection.

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.alarmTunnelState.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig">VpnTunnelStateAlarmConfig</a>

---

##### `applyRecommendedAlarms` <a name="applyRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.applyRecommendedAlarms"></a>

```typescript
public applyRecommendedAlarms(props?: VpnConnectionRecommendedAlarmsConfig): VpnConnectionRecommendedAlarms
```

Creates the recommended alarms for the VpnConnection.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#VPN](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#VPN)

###### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.applyRecommendedAlarms.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig">VpnConnectionRecommendedAlarmsConfig</a>

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.isCfnElement">isCfnElement</a></code> | Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.isCfnResource">isCfnResource</a></code> | Check whether the given object is a CfnResource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.arnForVPNConnection">arnForVPNConnection</a></code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.fromVpnConnectionId">fromVpnConnectionId</a></code> | Creates a new IVPNConnectionRef from a vpnConnectionId. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.isCfnVPNConnection">isCfnVPNConnection</a></code> | Checks whether the given object is a CfnVPNConnection. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.isConstruct"></a>

```typescript
import { VpnConnection } from '@renovosolutions/cdk-library-cloudwatch-alarms'

VpnConnection.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isCfnElement` <a name="isCfnElement" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.isCfnElement"></a>

```typescript
import { VpnConnection } from '@renovosolutions/cdk-library-cloudwatch-alarms'

VpnConnection.isCfnElement(x: any)
```

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different
versions of this library to be included in the same stack.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.isCfnElement.parameter.x"></a>

- *Type:* any

---

##### `isCfnResource` <a name="isCfnResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.isCfnResource"></a>

```typescript
import { VpnConnection } from '@renovosolutions/cdk-library-cloudwatch-alarms'

VpnConnection.isCfnResource(x: any)
```

Check whether the given object is a CfnResource.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.isCfnResource.parameter.x"></a>

- *Type:* any

---

##### `arnForVPNConnection` <a name="arnForVPNConnection" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.arnForVPNConnection"></a>

```typescript
import { VpnConnection } from '@renovosolutions/cdk-library-cloudwatch-alarms'

VpnConnection.arnForVPNConnection(resource: IVPNConnectionRef)
```

###### `resource`<sup>Required</sup> <a name="resource" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.arnForVPNConnection.parameter.resource"></a>

- *Type:* aws-cdk-lib.interfaces.aws_ec2.IVPNConnectionRef

---

##### `fromVpnConnectionId` <a name="fromVpnConnectionId" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.fromVpnConnectionId"></a>

```typescript
import { VpnConnection } from '@renovosolutions/cdk-library-cloudwatch-alarms'

VpnConnection.fromVpnConnectionId(scope: Construct, id: string, vpnConnectionId: string)
```

Creates a new IVPNConnectionRef from a vpnConnectionId.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.fromVpnConnectionId.parameter.scope"></a>

- *Type:* constructs.Construct

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.fromVpnConnectionId.parameter.id"></a>

- *Type:* string

---

###### `vpnConnectionId`<sup>Required</sup> <a name="vpnConnectionId" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.fromVpnConnectionId.parameter.vpnConnectionId"></a>

- *Type:* string

---

##### `isCfnVPNConnection` <a name="isCfnVPNConnection" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.isCfnVPNConnection"></a>

```typescript
import { VpnConnection } from '@renovosolutions/cdk-library-cloudwatch-alarms'

VpnConnection.isCfnVPNConnection(x: any)
```

Checks whether the given object is a CfnVPNConnection.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.isCfnVPNConnection.parameter.x"></a>

- *Type:* any

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.creationStack">creationStack</a></code> | <code>string[]</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.logicalId">logicalId</a></code> | <code>string</code> | The logical ID for this CloudFormation stack element. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this element is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.ref">ref</a></code> | <code>string</code> | Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.cfnOptions">cfnOptions</a></code> | <code>aws-cdk-lib.ICfnResourceOptions</code> | Options for this resource, such as condition, update policy etc. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.cfnResourceType">cfnResourceType</a></code> | <code>string</code> | AWS resource type. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.attrVpnConnectionId">attrVpnConnectionId</a></code> | <code>string</code> | The ID of the VPN connection. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.tags">tags</a></code> | <code>aws-cdk-lib.TagManager</code> | Tag Manager which manages the tags for this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.vpnConnectionRef">vpnConnectionRef</a></code> | <code>aws-cdk-lib.interfaces.aws_ec2.VPNConnectionReference</code> | A reference to a VPNConnection resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.customerGatewayId">customerGatewayId</a></code> | <code>string</code> | The ID of the customer gateway at your end of the VPN connection. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.type">type</a></code> | <code>string</code> | The type of VPN connection. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.enableAcceleration">enableAcceleration</a></code> | <code>boolean \| aws-cdk-lib.IResolvable</code> | Indicate whether to enable acceleration for the VPN connection. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.localIpv4NetworkCidr">localIpv4NetworkCidr</a></code> | <code>string</code> | The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.localIpv6NetworkCidr">localIpv6NetworkCidr</a></code> | <code>string</code> | The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.outsideIpAddressType">outsideIpAddressType</a></code> | <code>string</code> | The type of IP address assigned to the outside interface of the customer gateway device. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.preSharedKeyStorage">preSharedKeyStorage</a></code> | <code>string</code> | Describes the storage location for an instance store-backed AMI. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.remoteIpv4NetworkCidr">remoteIpv4NetworkCidr</a></code> | <code>string</code> | The IPv4 CIDR on the AWS side of the VPN connection. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.remoteIpv6NetworkCidr">remoteIpv6NetworkCidr</a></code> | <code>string</code> | The IPv6 CIDR on the AWS side of the VPN connection. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.staticRoutesOnly">staticRoutesOnly</a></code> | <code>boolean \| aws-cdk-lib.IResolvable</code> | Indicates whether the VPN connection uses static routes only. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.tagsRaw">tagsRaw</a></code> | <code>aws-cdk-lib.CfnTag[]</code> | Any tags assigned to the VPN connection. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.transitGatewayId">transitGatewayId</a></code> | <code>string</code> | The ID of the transit gateway associated with the VPN connection. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.transportTransitGatewayAttachmentId">transportTransitGatewayAttachmentId</a></code> | <code>string</code> | The transit gateway attachment ID to use for the VPN tunnel. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.tunnelBandwidth">tunnelBandwidth</a></code> | <code>string</code> | The desired bandwidth specification for the VPN tunnel, used when creating or modifying VPN connection options to set the tunnel's throughput capacity. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.tunnelInsideIpVersion">tunnelInsideIpVersion</a></code> | <code>string</code> | Indicate whether the VPN tunnels process IPv4 or IPv6 traffic. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.vpnConcentratorId">vpnConcentratorId</a></code> | <code>string</code> | The ID of the VPN concentrator to associate with the VPN connection. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.vpnGatewayId">vpnGatewayId</a></code> | <code>string</code> | The ID of the virtual private gateway at the AWS side of the VPN connection. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.vpnTunnelOptionsSpecifications">vpnTunnelOptionsSpecifications</a></code> | <code>aws-cdk-lib.IResolvable \| aws-cdk-lib.IResolvable \| aws-cdk-lib.aws_ec2.CfnVPNConnection.VpnTunnelOptionsSpecificationProperty[]</code> | The tunnel options for the VPN connection. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `creationStack`<sup>Required</sup> <a name="creationStack" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.creationStack"></a>

```typescript
public readonly creationStack: string[];
```

- *Type:* string[]

---

##### `logicalId`<sup>Required</sup> <a name="logicalId" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.logicalId"></a>

```typescript
public readonly logicalId: string;
```

- *Type:* string

The logical ID for this CloudFormation stack element.

The logical ID of the element
is calculated from the path of the resource node in the construct tree.

To override this value, use `overrideLogicalId(newLogicalId)`.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this element is defined.

CfnElements must be defined within a stack scope (directly or indirectly).

---

##### `ref`<sup>Required</sup> <a name="ref" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.ref"></a>

```typescript
public readonly ref: string;
```

- *Type:* string

Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.

If, by any chance, the intrinsic reference of a resource is not a string, you could
coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.

---

##### `cfnOptions`<sup>Required</sup> <a name="cfnOptions" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.cfnOptions"></a>

```typescript
public readonly cfnOptions: ICfnResourceOptions;
```

- *Type:* aws-cdk-lib.ICfnResourceOptions

Options for this resource, such as condition, update policy etc.

---

##### `cfnResourceType`<sup>Required</sup> <a name="cfnResourceType" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.cfnResourceType"></a>

```typescript
public readonly cfnResourceType: string;
```

- *Type:* string

AWS resource type.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

---

##### `attrVpnConnectionId`<sup>Required</sup> <a name="attrVpnConnectionId" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.attrVpnConnectionId"></a>

```typescript
public readonly attrVpnConnectionId: string;
```

- *Type:* string

The ID of the VPN connection.

---

##### `tags`<sup>Required</sup> <a name="tags" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.tags"></a>

```typescript
public readonly tags: TagManager;
```

- *Type:* aws-cdk-lib.TagManager

Tag Manager which manages the tags for this resource.

---

##### `vpnConnectionRef`<sup>Required</sup> <a name="vpnConnectionRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.vpnConnectionRef"></a>

```typescript
public readonly vpnConnectionRef: VPNConnectionReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_ec2.VPNConnectionReference

A reference to a VPNConnection resource.

---

##### `customerGatewayId`<sup>Required</sup> <a name="customerGatewayId" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.customerGatewayId"></a>

```typescript
public readonly customerGatewayId: string;
```

- *Type:* string

The ID of the customer gateway at your end of the VPN connection.

---

##### `type`<sup>Required</sup> <a name="type" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.type"></a>

```typescript
public readonly type: string;
```

- *Type:* string

The type of VPN connection.

---

##### `enableAcceleration`<sup>Optional</sup> <a name="enableAcceleration" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.enableAcceleration"></a>

```typescript
public readonly enableAcceleration: boolean | IResolvable;
```

- *Type:* boolean | aws-cdk-lib.IResolvable

Indicate whether to enable acceleration for the VPN connection.

---

##### `localIpv4NetworkCidr`<sup>Optional</sup> <a name="localIpv4NetworkCidr" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.localIpv4NetworkCidr"></a>

```typescript
public readonly localIpv4NetworkCidr: string;
```

- *Type:* string

The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection.

---

##### `localIpv6NetworkCidr`<sup>Optional</sup> <a name="localIpv6NetworkCidr" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.localIpv6NetworkCidr"></a>

```typescript
public readonly localIpv6NetworkCidr: string;
```

- *Type:* string

The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.

---

##### `outsideIpAddressType`<sup>Optional</sup> <a name="outsideIpAddressType" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.outsideIpAddressType"></a>

```typescript
public readonly outsideIpAddressType: string;
```

- *Type:* string

The type of IP address assigned to the outside interface of the customer gateway device.

---

##### `preSharedKeyStorage`<sup>Optional</sup> <a name="preSharedKeyStorage" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.preSharedKeyStorage"></a>

```typescript
public readonly preSharedKeyStorage: string;
```

- *Type:* string

Describes the storage location for an instance store-backed AMI.

---

##### `remoteIpv4NetworkCidr`<sup>Optional</sup> <a name="remoteIpv4NetworkCidr" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.remoteIpv4NetworkCidr"></a>

```typescript
public readonly remoteIpv4NetworkCidr: string;
```

- *Type:* string

The IPv4 CIDR on the AWS side of the VPN connection.

---

##### `remoteIpv6NetworkCidr`<sup>Optional</sup> <a name="remoteIpv6NetworkCidr" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.remoteIpv6NetworkCidr"></a>

```typescript
public readonly remoteIpv6NetworkCidr: string;
```

- *Type:* string

The IPv6 CIDR on the AWS side of the VPN connection.

---

##### `staticRoutesOnly`<sup>Optional</sup> <a name="staticRoutesOnly" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.staticRoutesOnly"></a>

```typescript
public readonly staticRoutesOnly: boolean | IResolvable;
```

- *Type:* boolean | aws-cdk-lib.IResolvable

Indicates whether the VPN connection uses static routes only.

---

##### `tagsRaw`<sup>Optional</sup> <a name="tagsRaw" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.tagsRaw"></a>

```typescript
public readonly tagsRaw: CfnTag[];
```

- *Type:* aws-cdk-lib.CfnTag[]

Any tags assigned to the VPN connection.

---

##### `transitGatewayId`<sup>Optional</sup> <a name="transitGatewayId" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.transitGatewayId"></a>

```typescript
public readonly transitGatewayId: string;
```

- *Type:* string

The ID of the transit gateway associated with the VPN connection.

---

##### `transportTransitGatewayAttachmentId`<sup>Optional</sup> <a name="transportTransitGatewayAttachmentId" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.transportTransitGatewayAttachmentId"></a>

```typescript
public readonly transportTransitGatewayAttachmentId: string;
```

- *Type:* string

The transit gateway attachment ID to use for the VPN tunnel.

---

##### `tunnelBandwidth`<sup>Optional</sup> <a name="tunnelBandwidth" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.tunnelBandwidth"></a>

```typescript
public readonly tunnelBandwidth: string;
```

- *Type:* string

The desired bandwidth specification for the VPN tunnel, used when creating or modifying VPN connection options to set the tunnel's throughput capacity.

---

##### `tunnelInsideIpVersion`<sup>Optional</sup> <a name="tunnelInsideIpVersion" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.tunnelInsideIpVersion"></a>

```typescript
public readonly tunnelInsideIpVersion: string;
```

- *Type:* string

Indicate whether the VPN tunnels process IPv4 or IPv6 traffic.

---

##### `vpnConcentratorId`<sup>Optional</sup> <a name="vpnConcentratorId" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.vpnConcentratorId"></a>

```typescript
public readonly vpnConcentratorId: string;
```

- *Type:* string

The ID of the VPN concentrator to associate with the VPN connection.

---

##### `vpnGatewayId`<sup>Optional</sup> <a name="vpnGatewayId" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.vpnGatewayId"></a>

```typescript
public readonly vpnGatewayId: string;
```

- *Type:* string

The ID of the virtual private gateway at the AWS side of the VPN connection.

---

##### `vpnTunnelOptionsSpecifications`<sup>Optional</sup> <a name="vpnTunnelOptionsSpecifications" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.vpnTunnelOptionsSpecifications"></a>

```typescript
public readonly vpnTunnelOptionsSpecifications: IResolvable | (IResolvable | VpnTunnelOptionsSpecificationProperty)[];
```

- *Type:* aws-cdk-lib.IResolvable | aws-cdk-lib.IResolvable | aws-cdk-lib.aws_ec2.CfnVPNConnection.VpnTunnelOptionsSpecificationProperty[]

The tunnel options for the VPN connection.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.CFN_RESOURCE_TYPE_NAME">CFN_RESOURCE_TYPE_NAME</a></code> | <code>string</code> | The CloudFormation resource type name for this resource class. |

---

##### `CFN_RESOURCE_TYPE_NAME`<sup>Required</sup> <a name="CFN_RESOURCE_TYPE_NAME" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnection.property.CFN_RESOURCE_TYPE_NAME"></a>

```typescript
public readonly CFN_RESOURCE_TYPE_NAME: string;
```

- *Type:* string

The CloudFormation resource type name for this resource class.

---

### VpnConnectionRecommendedAlarms <a name="VpnConnectionRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms"></a>

A construct that creates the recommended alarms for an VpnConnection.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#VPN](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#VPN)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.Initializer"></a>

```typescript
import { VpnConnectionRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new VpnConnectionRecommendedAlarms(scope: Construct, id: string, props: VpnConnectionRecommendedAlarmsProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps">VpnConnectionRecommendedAlarmsProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.Initializer.parameter.scope"></a>

- *Type:* constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps">VpnConnectionRecommendedAlarmsProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.with">with</a></code> | Applies one or more mixins to this construct. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

The mixins to apply.

---

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.isConstruct"></a>

```typescript
import { VpnConnectionRecommendedAlarms } from '@renovosolutions/cdk-library-cloudwatch-alarms'

VpnConnectionRecommendedAlarms.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.property.alarmTunnelState">alarmTunnelState</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm">VpnConnectionTunnelStateAlarm</a></code> | The TunnelState alarm. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `alarmTunnelState`<sup>Optional</sup> <a name="alarmTunnelState" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarms.property.alarmTunnelState"></a>

```typescript
public readonly alarmTunnelState: VpnConnectionTunnelStateAlarm;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm">VpnConnectionTunnelStateAlarm</a>

The TunnelState alarm.

---


### VpnConnectionTunnelStateAlarm <a name="VpnConnectionTunnelStateAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm"></a>

This alarm helps you understand if the state of one or more tunnels is DOWN.

For troubleshooting, see VPN tunnel troubleshooting.

The alarm is triggered when the monitored value is less than 1.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.Initializer"></a>

```typescript
import { VpnConnectionTunnelStateAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new VpnConnectionTunnelStateAlarm(scope: IConstruct, id: string, props: VpnConnectionTunnelStateAlarmProps)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.Initializer.parameter.scope">scope</a></code> | <code>constructs.IConstruct</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps">VpnConnectionTunnelStateAlarmProps</a></code> | *No description.* |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.Initializer.parameter.scope"></a>

- *Type:* constructs.IConstruct

---

##### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.Initializer.parameter.id"></a>

- *Type:* string

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps">VpnConnectionTunnelStateAlarmProps</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.with">with</a></code> | Applies one or more mixins to this construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.addAlarmAction">addAlarmAction</a></code> | Trigger this action if the alarm fires. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.addInsufficientDataAction">addInsufficientDataAction</a></code> | Trigger this action if there is insufficient data to evaluate the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.addOkAction">addOkAction</a></code> | Trigger this action if the alarm returns from breaching state into ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.renderAlarmRule">renderAlarmRule</a></code> | AlarmRule indicating ALARM state for Alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.toAnnotation">toAnnotation</a></code> | Turn this alarm into a horizontal annotation. |

---

##### `toString` <a name="toString" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.toString"></a>

```typescript
public toString(): string
```

Returns a string representation of this construct.

##### `with` <a name="with" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.with"></a>

```typescript
public with(mixins: ...IMixin[]): IConstruct
```

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple `with()` calls if subsequent mixins should apply to added
constructs.

###### `mixins`<sup>Required</sup> <a name="mixins" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.with.parameter.mixins"></a>

- *Type:* ...constructs.IMixin[]

---

##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.applyRemovalPolicy"></a>

```typescript
public applyRemovalPolicy(policy: RemovalPolicy): void
```

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.

The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).

###### `policy`<sup>Required</sup> <a name="policy" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.applyRemovalPolicy.parameter.policy"></a>

- *Type:* aws-cdk-lib.RemovalPolicy

---

##### `addAlarmAction` <a name="addAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.addAlarmAction"></a>

```typescript
public addAlarmAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm fires.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.addAlarmAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addInsufficientDataAction` <a name="addInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.addInsufficientDataAction"></a>

```typescript
public addInsufficientDataAction(actions: ...IAlarmAction[]): void
```

Trigger this action if there is insufficient data to evaluate the alarm.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.addInsufficientDataAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `addOkAction` <a name="addOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.addOkAction"></a>

```typescript
public addOkAction(actions: ...IAlarmAction[]): void
```

Trigger this action if the alarm returns from breaching state into ok state.

Typically SnsAction or AutoScalingAction.

###### `actions`<sup>Required</sup> <a name="actions" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.addOkAction.parameter.actions"></a>

- *Type:* ...aws-cdk-lib.aws_cloudwatch.IAlarmAction[]

---

##### `renderAlarmRule` <a name="renderAlarmRule" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.renderAlarmRule"></a>

```typescript
public renderAlarmRule(): string
```

AlarmRule indicating ALARM state for Alarm.

##### `toAnnotation` <a name="toAnnotation" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.toAnnotation"></a>

```typescript
public toAnnotation(): HorizontalAnnotation
```

Turn this alarm into a horizontal annotation.

This is useful if you want to represent an Alarm in a non-AlarmWidget.
An `AlarmWidget` can directly show an alarm, but it can only show a
single alarm and no other metrics. Instead, you can convert the alarm to
a HorizontalAnnotation and add it as an annotation to another graph.

This might be useful if:

- You want to show multiple alarms inside a single graph, for example if
  you have both a "small margin/long period" alarm as well as a
  "large margin/short period" alarm.

- You want to show an Alarm line in a graph with multiple metrics in it.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.fromAlarmArn">fromAlarmArn</a></code> | Import an existing CloudWatch alarm provided an ARN. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.fromAlarmName">fromAlarmName</a></code> | Import an existing CloudWatch alarm provided an Name. |

---

##### `isConstruct` <a name="isConstruct" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.isConstruct"></a>

```typescript
import { VpnConnectionTunnelStateAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

VpnConnectionTunnelStateAlarm.isConstruct(x: any)
```

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.

###### `x`<sup>Required</sup> <a name="x" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.isConstruct.parameter.x"></a>

- *Type:* any

Any object.

---

##### `isOwnedResource` <a name="isOwnedResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.isOwnedResource"></a>

```typescript
import { VpnConnectionTunnelStateAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

VpnConnectionTunnelStateAlarm.isOwnedResource(construct: IConstruct)
```

Returns true if the construct was created by CDK, and false otherwise.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.isOwnedResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `isResource` <a name="isResource" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.isResource"></a>

```typescript
import { VpnConnectionTunnelStateAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

VpnConnectionTunnelStateAlarm.isResource(construct: IConstruct)
```

Check whether the given construct is a Resource.

###### `construct`<sup>Required</sup> <a name="construct" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.isResource.parameter.construct"></a>

- *Type:* constructs.IConstruct

---

##### `fromAlarmArn` <a name="fromAlarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.fromAlarmArn"></a>

```typescript
import { VpnConnectionTunnelStateAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

VpnConnectionTunnelStateAlarm.fromAlarmArn(scope: Construct, id: string, alarmArn: string)
```

Import an existing CloudWatch alarm provided an ARN.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.fromAlarmArn.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.fromAlarmArn.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.fromAlarmArn.parameter.alarmArn"></a>

- *Type:* string

Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:Foo).

---

##### `fromAlarmName` <a name="fromAlarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.fromAlarmName"></a>

```typescript
import { VpnConnectionTunnelStateAlarm } from '@renovosolutions/cdk-library-cloudwatch-alarms'

VpnConnectionTunnelStateAlarm.fromAlarmName(scope: Construct, id: string, alarmName: string)
```

Import an existing CloudWatch alarm provided an Name.

###### `scope`<sup>Required</sup> <a name="scope" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.fromAlarmName.parameter.scope"></a>

- *Type:* constructs.Construct

The parent creating construct (usually `this`).

---

###### `id`<sup>Required</sup> <a name="id" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.fromAlarmName.parameter.id"></a>

- *Type:* string

The construct's name.

---

###### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.fromAlarmName.parameter.alarmName"></a>

- *Type:* string

Alarm Name.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.alarmArn">alarmArn</a></code> | <code>string</code> | ARN of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.alarmName">alarmName</a></code> | <code>string</code> | Name of this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.alarmRef">alarmRef</a></code> | <code>aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference</code> | A reference to a Alarm resource. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IMetric</code> | The metric object this alarm was based on. |

---

##### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.node"></a>

```typescript
public readonly node: Node;
```

- *Type:* constructs.Node

The tree node.

---

##### `env`<sup>Required</sup> <a name="env" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.env"></a>

```typescript
public readonly env: ResourceEnvironment;
```

- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
different than the stack they were imported into.

---

##### `stack`<sup>Required</sup> <a name="stack" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.stack"></a>

```typescript
public readonly stack: Stack;
```

- *Type:* aws-cdk-lib.Stack

The stack in which this resource is defined.

---

##### `alarmArn`<sup>Required</sup> <a name="alarmArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.alarmArn"></a>

```typescript
public readonly alarmArn: string;
```

- *Type:* string

ARN of this alarm.

---

##### `alarmName`<sup>Required</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string

Name of this alarm.

---

##### `alarmRef`<sup>Required</sup> <a name="alarmRef" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.alarmRef"></a>

```typescript
public readonly alarmRef: AlarmReference;
```

- *Type:* aws-cdk-lib.interfaces.aws_cloudwatch.AlarmReference

A reference to a Alarm resource.

---

##### `metric`<sup>Required</sup> <a name="metric" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.metric"></a>

```typescript
public readonly metric: IMetric;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IMetric

The metric object this alarm was based on.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD">ANOMALY_DETECTION_NO_THRESHOLD</a></code> | <code>number</code> | Conventional value for the threshold property when creating anomaly detection alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |

---

##### `ANOMALY_DETECTION_NO_THRESHOLD`<sup>Required</sup> <a name="ANOMALY_DETECTION_NO_THRESHOLD" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.ANOMALY_DETECTION_NO_THRESHOLD"></a>

```typescript
public readonly ANOMALY_DETECTION_NO_THRESHOLD: number;
```

- *Type:* number

Conventional value for the threshold property when creating anomaly detection alarms.

Anomaly detection alarms don't have numbered threshold. Instead, they have a dynamically
calculated threshold based on the metric math expression that contains a metric expression.

The `threshold` property is required, but the value is ignored. This
constant has the value 0, and has a symbolic name to indicate why the
threshold is 0. You can use `new AnomalyDetectionAlarm()` to avoid having to pass
the `threshold` property at all.

---

##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarm.property.PROPERTY_INJECTION_ID"></a>

```typescript
public readonly PROPERTY_INJECTION_ID: string;
```

- *Type:* string

Uniquely identifies this class.

---

## Structs <a name="Structs" id="Structs"></a>

### AlarmBaseProps <a name="AlarmBaseProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.AlarmBaseProps"></a>

The base properties for an alarm where default values are consistent across all alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.AlarmBaseProps.Initializer"></a>

```typescript
import { AlarmBaseProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const alarmBaseProps: AlarmBaseProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AlarmBaseProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AlarmBaseProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AlarmBaseProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AlarmBaseProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AlarmBaseProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AlarmBaseProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AlarmBaseProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.AlarmBaseProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### ApiGateway4XXErrorAlarmConfig <a name="ApiGateway4XXErrorAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig"></a>

Configuration for the 4XXError alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.Initializer"></a>

```typescript
import { ApiGateway4XXErrorAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGateway4XXErrorAlarmConfig: ApiGateway4XXErrorAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The threshold value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The threshold value against which the specified statistic is compared.

The unit is an absolute count of errors, not a percentage.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect high rates of client-side errors for the API Gateway requests.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* apiName + ' - 4XXError'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### ApiGateway5XXErrorAlarmConfig <a name="ApiGateway5XXErrorAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig"></a>

Configuration for the 5XXError alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.Initializer"></a>

```typescript
import { ApiGateway5XXErrorAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGateway5XXErrorAlarmConfig: ApiGateway5XXErrorAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The threshold value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The threshold value against which the specified statistic is compared.

The unit is an absolute count of errors, not a percentage.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect high rates of server-side errors for the API Gateway requests.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* apiName + ' - 5XXError'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

### ApiGatewayAlarmBaseConfig <a name="ApiGatewayAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAlarmBaseConfig.Initializer"></a>

```typescript
import { ApiGatewayAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayAlarmBaseConfig: ApiGatewayAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### ApiGatewayAnomalyAlarmBaseConfig <a name="ApiGatewayAnomalyAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAnomalyAlarmBaseConfig"></a>

The common optional configuration for anomaly detection alarms.

These alarms use a fixed 5-minute metric period and do not expose a configurable `period`,
because finer periods produce noisier, less reliable anomaly detection bands.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAnomalyAlarmBaseConfig.Initializer"></a>

```typescript
import { ApiGatewayAnomalyAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayAnomalyAlarmBaseConfig: ApiGatewayAnomalyAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAnomalyAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAnomalyAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAnomalyAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAnomalyAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAnomalyAlarmBaseConfig.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAnomalyAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAnomalyAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAnomalyAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAnomalyAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayAnomalyAlarmBaseConfig.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8

The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean.

---

### ApiGatewayCountAnomalyAlarmConfig <a name="ApiGatewayCountAnomalyAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig"></a>

Configuration for the Count anomaly detection alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.Initializer"></a>

```typescript
import { ApiGatewayCountAnomalyAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayCountAnomalyAlarmConfig: ApiGatewayCountAnomalyAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | The comparison operator used to compare the metric against the anomaly detection band. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the anomaly detection band. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8

The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This anomaly detection alarm detects unexpected drops in request volume for the API Gateway stage, which can indicate clients calling the wrong endpoints or an outage upstream.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* apiName + ' - CountAnomaly'

The alarm name.

---

##### `comparisonOperator`<sup>Optional</sup> <a name="comparisonOperator" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.comparisonOperator"></a>

```typescript
public readonly comparisonOperator: ComparisonOperator;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.ComparisonOperator
- *Default:* cloudwatch.ComparisonOperator.LESS_THAN_LOWER_OR_GREATER_THAN_UPPER_THRESHOLD

The comparison operator used to compare the metric against the anomaly detection band.

Defaults to `LESS_THAN_LOWER_OR_GREATER_THAN_UPPER_THRESHOLD` to catch both unexpected
traffic drops (the main case AWS's recommended static `Count` alarm targets but cannot
express with a fixed value) and unusual spikes (e.g. abuse or retry storms).

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 4

The number of periods over which data is compared to the anomaly detection band.

---

### ApiGatewayDetailedAlarmConfig <a name="ApiGatewayDetailedAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayDetailedAlarmConfig"></a>

The common properties for the ApiGateway alarms when monitoring resource and method dimensions.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayDetailedAlarmConfig.Initializer"></a>

```typescript
import { ApiGatewayDetailedAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayDetailedAlarmConfig: ApiGatewayDetailedAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayDetailedAlarmConfig.property.alias">alias</a></code> | <code>string</code> | The alias of the resource to monitor, used as a discriminator in the alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayDetailedAlarmConfig.property.method">method</a></code> | <code>string</code> | The method to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayDetailedAlarmConfig.property.resource">resource</a></code> | <code>string</code> | The resource to monitor. |

---

##### `alias`<sup>Required</sup> <a name="alias" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayDetailedAlarmConfig.property.alias"></a>

```typescript
public readonly alias: string;
```

- *Type:* string

The alias of the resource to monitor, used as a discriminator in the alarm name.

---

##### `method`<sup>Required</sup> <a name="method" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayDetailedAlarmConfig.property.method"></a>

```typescript
public readonly method: string;
```

- *Type:* string

The method to monitor.

---

##### `resource`<sup>Required</sup> <a name="resource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayDetailedAlarmConfig.property.resource"></a>

```typescript
public readonly resource: string;
```

- *Type:* string

The resource to monitor.

---

### ApiGatewayIntegrationLatencyAnomalyAlarmConfig <a name="ApiGatewayIntegrationLatencyAnomalyAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig"></a>

Configuration for the IntegrationLatency anomaly detection alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.Initializer"></a>

```typescript
import { ApiGatewayIntegrationLatencyAnomalyAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayIntegrationLatencyAnomalyAlarmConfig: ApiGatewayIntegrationLatencyAnomalyAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | The comparison operator used to compare the metric against the anomaly detection band. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the anomaly detection band. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8

The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This anomaly detection alarm detects unusual drift in the API Gateway backend integration latency, which can indicate backend performance issues independent of API Gateway overhead.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* apiName + ' - IntegrationLatencyAnomaly'

The alarm name.

---

##### `comparisonOperator`<sup>Optional</sup> <a name="comparisonOperator" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.comparisonOperator"></a>

```typescript
public readonly comparisonOperator: ComparisonOperator;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.ComparisonOperator
- *Default:* cloudwatch.ComparisonOperator.GREATER_THAN_UPPER_THRESHOLD

The comparison operator used to compare the metric against the anomaly detection band.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the anomaly detection band.

---

### ApiGatewayLatencyAlarmConfig <a name="ApiGatewayLatencyAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig"></a>

Configuration for the Latency alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.Initializer"></a>

```typescript
import { ApiGatewayLatencyAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayLatencyAlarmConfig: ApiGatewayLatencyAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value in milliseconds against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect when the API Gateway requests in a stage have high latency.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* apiName + ' - Latency'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 2500

The value in milliseconds against which the specified statistic is compared.

The suggested threshold value does not work for all API workloads. However, you can
use it as a starting point for the threshold. You can then choose different threshold
values based on the workload and acceptable latency, performance, and SLA requirements
for the API. If it is acceptable for the API to have a higher latency in general, you
can set a higher threshold value to make the alarm less sensitive. However, if the API
is expected to provide near real-time responses, set a lower threshold value. You can
also analyze historical data to determine what the expected baseline latency is for the
application workload and then tune the threshold value accordingly.

---

### ApiGatewayLatencyAnomalyAlarmConfig <a name="ApiGatewayLatencyAnomalyAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig"></a>

Configuration for the Latency anomaly detection alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.Initializer"></a>

```typescript
import { ApiGatewayLatencyAnomalyAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayLatencyAnomalyAlarmConfig: ApiGatewayLatencyAnomalyAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | The comparison operator used to compare the metric against the anomaly detection band. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the anomaly detection band. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8

The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This anomaly detection alarm detects unusual drift in the API Gateway request latency compared to the expected baseline.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* apiName + ' - LatencyAnomaly'

The alarm name.

---

##### `comparisonOperator`<sup>Optional</sup> <a name="comparisonOperator" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.comparisonOperator"></a>

```typescript
public readonly comparisonOperator: ComparisonOperator;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.ComparisonOperator
- *Default:* cloudwatch.ComparisonOperator.GREATER_THAN_UPPER_THRESHOLD

The comparison operator used to compare the metric against the anomaly detection band.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the anomaly detection band.

---

### ApiGatewayRestApi4XXErrorAlarmProps <a name="ApiGatewayRestApi4XXErrorAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps"></a>

The properties for the ApiGatewayRestApi4XXErrorAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.Initializer"></a>

```typescript
import { ApiGatewayRestApi4XXErrorAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayRestApi4XXErrorAlarmProps: ApiGatewayRestApi4XXErrorAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.api">api</a></code> | <code>aws-cdk-lib.aws_apigateway.RestApi</code> | The ApiGateway api to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The threshold value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `api`<sup>Required</sup> <a name="api" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.api"></a>

```typescript
public readonly api: RestApi;
```

- *Type:* aws-cdk-lib.aws_apigateway.RestApi

The ApiGateway api to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The threshold value against which the specified statistic is compared.

The unit is an absolute count of errors, not a percentage.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect high rates of client-side errors for the API Gateway requests.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* apiName + ' - 4XXError'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi4XXErrorAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### ApiGatewayRestApi5XXErrorAlarmProps <a name="ApiGatewayRestApi5XXErrorAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps"></a>

The properties for the ApiGatewayRestApi5XXErrorAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.Initializer"></a>

```typescript
import { ApiGatewayRestApi5XXErrorAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayRestApi5XXErrorAlarmProps: ApiGatewayRestApi5XXErrorAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.api">api</a></code> | <code>aws-cdk-lib.aws_apigateway.RestApi</code> | The ApiGateway api to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The threshold value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `api`<sup>Required</sup> <a name="api" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.api"></a>

```typescript
public readonly api: RestApi;
```

- *Type:* aws-cdk-lib.aws_apigateway.RestApi

The ApiGateway api to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The threshold value against which the specified statistic is compared.

The unit is an absolute count of errors, not a percentage.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect high rates of server-side errors for the API Gateway requests.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* apiName + ' - 5XXError'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApi5XXErrorAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

### ApiGatewayRestApiAlarmProps <a name="ApiGatewayRestApiAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiAlarmProps"></a>

The common properties for the ApiGateway RestApi alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiAlarmProps.Initializer"></a>

```typescript
import { ApiGatewayRestApiAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayRestApiAlarmProps: ApiGatewayRestApiAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiAlarmProps.property.api">api</a></code> | <code>aws-cdk-lib.aws_apigateway.RestApi</code> | The ApiGateway api to monitor. |

---

##### `api`<sup>Required</sup> <a name="api" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiAlarmProps.property.api"></a>

```typescript
public readonly api: RestApi;
```

- *Type:* aws-cdk-lib.aws_apigateway.RestApi

The ApiGateway api to monitor.

---

### ApiGatewayRestApiCountAnomalyAlarmProps <a name="ApiGatewayRestApiCountAnomalyAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps"></a>

The properties for the ApiGatewayRestApiCountAnomalyAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.Initializer"></a>

```typescript
import { ApiGatewayRestApiCountAnomalyAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayRestApiCountAnomalyAlarmProps: ApiGatewayRestApiCountAnomalyAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.api">api</a></code> | <code>aws-cdk-lib.aws_apigateway.RestApi</code> | The ApiGateway api to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | The comparison operator used to compare the metric against the anomaly detection band. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the anomaly detection band. |

---

##### `api`<sup>Required</sup> <a name="api" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.api"></a>

```typescript
public readonly api: RestApi;
```

- *Type:* aws-cdk-lib.aws_apigateway.RestApi

The ApiGateway api to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8

The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This anomaly detection alarm detects unexpected drops in request volume for the API Gateway stage, which can indicate clients calling the wrong endpoints or an outage upstream.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* apiName + ' - CountAnomaly'

The alarm name.

---

##### `comparisonOperator`<sup>Optional</sup> <a name="comparisonOperator" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.comparisonOperator"></a>

```typescript
public readonly comparisonOperator: ComparisonOperator;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.ComparisonOperator
- *Default:* cloudwatch.ComparisonOperator.LESS_THAN_LOWER_OR_GREATER_THAN_UPPER_THRESHOLD

The comparison operator used to compare the metric against the anomaly detection band.

Defaults to `LESS_THAN_LOWER_OR_GREATER_THAN_UPPER_THRESHOLD` to catch both unexpected
traffic drops (the main case AWS's recommended static `Count` alarm targets but cannot
express with a fixed value) and unusual spikes (e.g. abuse or retry storms).

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiCountAnomalyAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 4

The number of periods over which data is compared to the anomaly detection band.

---

### ApiGatewayRestApiDetailedLatencyAlarmConfig <a name="ApiGatewayRestApiDetailedLatencyAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig"></a>

Configuration for the Latency alarm when monitoring resource and method dimensions.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.Initializer"></a>

```typescript
import { ApiGatewayRestApiDetailedLatencyAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayRestApiDetailedLatencyAlarmConfig: ApiGatewayRestApiDetailedLatencyAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value in milliseconds against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.alias">alias</a></code> | <code>string</code> | The alias of the resource to monitor, used as a discriminator in the alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.method">method</a></code> | <code>string</code> | The method to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.resource">resource</a></code> | <code>string</code> | The resource to monitor. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect when the API Gateway requests in a stage have high latency.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* apiName + ' - Latency'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 2500

The value in milliseconds against which the specified statistic is compared.

The suggested threshold value does not work for all API workloads. However, you can
use it as a starting point for the threshold. You can then choose different threshold
values based on the workload and acceptable latency, performance, and SLA requirements
for the API. If it is acceptable for the API to have a higher latency in general, you
can set a higher threshold value to make the alarm less sensitive. However, if the API
is expected to provide near real-time responses, set a lower threshold value. You can
also analyze historical data to determine what the expected baseline latency is for the
application workload and then tune the threshold value accordingly.

---

##### `alias`<sup>Required</sup> <a name="alias" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.alias"></a>

```typescript
public readonly alias: string;
```

- *Type:* string

The alias of the resource to monitor, used as a discriminator in the alarm name.

---

##### `method`<sup>Required</sup> <a name="method" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.method"></a>

```typescript
public readonly method: string;
```

- *Type:* string

The method to monitor.

---

##### `resource`<sup>Required</sup> <a name="resource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig.property.resource"></a>

```typescript
public readonly resource: string;
```

- *Type:* string

The resource to monitor.

---

### ApiGatewayRestApiDetailedLatencyAlarmProps <a name="ApiGatewayRestApiDetailedLatencyAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps"></a>

The properties for the ApiGatewayRestApiDetailedLatencyAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.Initializer"></a>

```typescript
import { ApiGatewayRestApiDetailedLatencyAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayRestApiDetailedLatencyAlarmProps: ApiGatewayRestApiDetailedLatencyAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.api">api</a></code> | <code>aws-cdk-lib.aws_apigateway.RestApi</code> | The ApiGateway api to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value in milliseconds against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.alias">alias</a></code> | <code>string</code> | The alias of the resource to monitor, used as a discriminator in the alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.method">method</a></code> | <code>string</code> | The method to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.resource">resource</a></code> | <code>string</code> | The resource to monitor. |

---

##### `api`<sup>Required</sup> <a name="api" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.api"></a>

```typescript
public readonly api: RestApi;
```

- *Type:* aws-cdk-lib.aws_apigateway.RestApi

The ApiGateway api to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect when the API Gateway requests in a stage have high latency.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* apiName + ' - Latency'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 2500

The value in milliseconds against which the specified statistic is compared.

The suggested threshold value does not work for all API workloads. However, you can
use it as a starting point for the threshold. You can then choose different threshold
values based on the workload and acceptable latency, performance, and SLA requirements
for the API. If it is acceptable for the API to have a higher latency in general, you
can set a higher threshold value to make the alarm less sensitive. However, if the API
is expected to provide near real-time responses, set a lower threshold value. You can
also analyze historical data to determine what the expected baseline latency is for the
application workload and then tune the threshold value accordingly.

---

##### `alias`<sup>Required</sup> <a name="alias" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.alias"></a>

```typescript
public readonly alias: string;
```

- *Type:* string

The alias of the resource to monitor, used as a discriminator in the alarm name.

---

##### `method`<sup>Required</sup> <a name="method" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.method"></a>

```typescript
public readonly method: string;
```

- *Type:* string

The method to monitor.

---

##### `resource`<sup>Required</sup> <a name="resource" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmProps.property.resource"></a>

```typescript
public readonly resource: string;
```

- *Type:* string

The resource to monitor.

---

### ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps <a name="ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps"></a>

The properties for the ApiGatewayRestApiIntegrationLatencyAnomalyAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.Initializer"></a>

```typescript
import { ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayRestApiIntegrationLatencyAnomalyAlarmProps: ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.api">api</a></code> | <code>aws-cdk-lib.aws_apigateway.RestApi</code> | The ApiGateway api to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | The comparison operator used to compare the metric against the anomaly detection band. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the anomaly detection band. |

---

##### `api`<sup>Required</sup> <a name="api" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.api"></a>

```typescript
public readonly api: RestApi;
```

- *Type:* aws-cdk-lib.aws_apigateway.RestApi

The ApiGateway api to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8

The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This anomaly detection alarm detects unusual drift in the API Gateway backend integration latency, which can indicate backend performance issues independent of API Gateway overhead.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* apiName + ' - IntegrationLatencyAnomaly'

The alarm name.

---

##### `comparisonOperator`<sup>Optional</sup> <a name="comparisonOperator" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.comparisonOperator"></a>

```typescript
public readonly comparisonOperator: ComparisonOperator;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.ComparisonOperator
- *Default:* cloudwatch.ComparisonOperator.GREATER_THAN_UPPER_THRESHOLD

The comparison operator used to compare the metric against the anomaly detection band.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiIntegrationLatencyAnomalyAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the anomaly detection band.

---

### ApiGatewayRestApiLatencyAlarmProps <a name="ApiGatewayRestApiLatencyAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps"></a>

The properties for the ApiGatewayRestApiLatencyAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.Initializer"></a>

```typescript
import { ApiGatewayRestApiLatencyAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayRestApiLatencyAlarmProps: ApiGatewayRestApiLatencyAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.api">api</a></code> | <code>aws-cdk-lib.aws_apigateway.RestApi</code> | The ApiGateway api to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value in milliseconds against which the specified statistic is compared. |

---

##### `api`<sup>Required</sup> <a name="api" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.api"></a>

```typescript
public readonly api: RestApi;
```

- *Type:* aws-cdk-lib.aws_apigateway.RestApi

The ApiGateway api to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect when the API Gateway requests in a stage have high latency.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* apiName + ' - Latency'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 2500

The value in milliseconds against which the specified statistic is compared.

The suggested threshold value does not work for all API workloads. However, you can
use it as a starting point for the threshold. You can then choose different threshold
values based on the workload and acceptable latency, performance, and SLA requirements
for the API. If it is acceptable for the API to have a higher latency in general, you
can set a higher threshold value to make the alarm less sensitive. However, if the API
is expected to provide near real-time responses, set a lower threshold value. You can
also analyze historical data to determine what the expected baseline latency is for the
application workload and then tune the threshold value accordingly.

---

### ApiGatewayRestApiLatencyAnomalyAlarmProps <a name="ApiGatewayRestApiLatencyAnomalyAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps"></a>

The properties for the ApiGatewayRestApiLatencyAnomalyAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.Initializer"></a>

```typescript
import { ApiGatewayRestApiLatencyAnomalyAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayRestApiLatencyAnomalyAlarmProps: ApiGatewayRestApiLatencyAnomalyAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.api">api</a></code> | <code>aws-cdk-lib.aws_apigateway.RestApi</code> | The ApiGateway api to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | The comparison operator used to compare the metric against the anomaly detection band. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the anomaly detection band. |

---

##### `api`<sup>Required</sup> <a name="api" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.api"></a>

```typescript
public readonly api: RestApi;
```

- *Type:* aws-cdk-lib.aws_apigateway.RestApi

The ApiGateway api to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8

The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This anomaly detection alarm detects unusual drift in the API Gateway request latency compared to the expected baseline.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* apiName + ' - LatencyAnomaly'

The alarm name.

---

##### `comparisonOperator`<sup>Optional</sup> <a name="comparisonOperator" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.comparisonOperator"></a>

```typescript
public readonly comparisonOperator: ComparisonOperator;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.ComparisonOperator
- *Default:* cloudwatch.ComparisonOperator.GREATER_THAN_UPPER_THRESHOLD

The comparison operator used to compare the metric against the anomaly detection band.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiLatencyAnomalyAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the anomaly detection band.

---

### ApiGatewayRestApiRecommendedAlarmsConfig <a name="ApiGatewayRestApiRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an ApiGateway RestApi.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { ApiGatewayRestApiRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayRestApiRecommendedAlarmsConfig: ApiGatewayRestApiRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.config4XXErrorAlarm">config4XXErrorAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig">ApiGateway4XXErrorAlarmConfig</a></code> | The configuration for the 4XXError alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.config5XXErrorAlarm">config5XXErrorAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig">ApiGateway5XXErrorAlarmConfig</a></code> | The configuration for the 5XXError alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.configCountAnomalyAlarm">configCountAnomalyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig">ApiGatewayCountAnomalyAlarmConfig</a></code> | The configuration for the Count anomaly detection alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.configDetailedLatencyAlarmList">configDetailedLatencyAlarmList</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig">ApiGatewayRestApiDetailedLatencyAlarmConfig</a>[]</code> | The configuration list for the detailed Latency alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.configIntegrationLatencyAnomalyAlarm">configIntegrationLatencyAnomalyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig">ApiGatewayIntegrationLatencyAnomalyAlarmConfig</a></code> | The configuration for the IntegrationLatency anomaly detection alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.configLatencyAlarm">configLatencyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig">ApiGatewayLatencyAlarmConfig</a></code> | The configuration for the Latency alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.configLatencyAnomalyAlarm">configLatencyAnomalyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig">ApiGatewayLatencyAnomalyAlarmConfig</a></code> | The configuration for the Latency anomaly detection alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics">ApiGatewayRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `config4XXErrorAlarm`<sup>Required</sup> <a name="config4XXErrorAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.config4XXErrorAlarm"></a>

```typescript
public readonly config4XXErrorAlarm: ApiGateway4XXErrorAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig">ApiGateway4XXErrorAlarmConfig</a>

The configuration for the 4XXError alarm.

---

##### `config5XXErrorAlarm`<sup>Required</sup> <a name="config5XXErrorAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.config5XXErrorAlarm"></a>

```typescript
public readonly config5XXErrorAlarm: ApiGateway5XXErrorAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig">ApiGateway5XXErrorAlarmConfig</a>

The configuration for the 5XXError alarm.

---

##### `configCountAnomalyAlarm`<sup>Optional</sup> <a name="configCountAnomalyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.configCountAnomalyAlarm"></a>

```typescript
public readonly configCountAnomalyAlarm: ApiGatewayCountAnomalyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig">ApiGatewayCountAnomalyAlarmConfig</a>

The configuration for the Count anomaly detection alarm.

---

##### `configDetailedLatencyAlarmList`<sup>Optional</sup> <a name="configDetailedLatencyAlarmList" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.configDetailedLatencyAlarmList"></a>

```typescript
public readonly configDetailedLatencyAlarmList: ApiGatewayRestApiDetailedLatencyAlarmConfig[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig">ApiGatewayRestApiDetailedLatencyAlarmConfig</a>[]

The configuration list for the detailed Latency alarm.

---

##### `configIntegrationLatencyAnomalyAlarm`<sup>Optional</sup> <a name="configIntegrationLatencyAnomalyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.configIntegrationLatencyAnomalyAlarm"></a>

```typescript
public readonly configIntegrationLatencyAnomalyAlarm: ApiGatewayIntegrationLatencyAnomalyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig">ApiGatewayIntegrationLatencyAnomalyAlarmConfig</a>

The configuration for the IntegrationLatency anomaly detection alarm.

---

##### `configLatencyAlarm`<sup>Optional</sup> <a name="configLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.configLatencyAlarm"></a>

```typescript
public readonly configLatencyAlarm: ApiGatewayLatencyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig">ApiGatewayLatencyAlarmConfig</a>

The configuration for the Latency alarm.

---

##### `configLatencyAnomalyAlarm`<sup>Optional</sup> <a name="configLatencyAnomalyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.configLatencyAnomalyAlarm"></a>

```typescript
public readonly configLatencyAnomalyAlarm: ApiGatewayLatencyAnomalyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig">ApiGatewayLatencyAnomalyAlarmConfig</a>

The configuration for the Latency anomaly detection alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: ApiGatewayRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics">ApiGatewayRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### ApiGatewayRestApiRecommendedAlarmsProps <a name="ApiGatewayRestApiRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps"></a>

Properties for the ApiGatewayRestApiRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.Initializer"></a>

```typescript
import { ApiGatewayRestApiRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const apiGatewayRestApiRecommendedAlarmsProps: ApiGatewayRestApiRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.config4XXErrorAlarm">config4XXErrorAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig">ApiGateway4XXErrorAlarmConfig</a></code> | The configuration for the 4XXError alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.config5XXErrorAlarm">config5XXErrorAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig">ApiGateway5XXErrorAlarmConfig</a></code> | The configuration for the 5XXError alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.configCountAnomalyAlarm">configCountAnomalyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig">ApiGatewayCountAnomalyAlarmConfig</a></code> | The configuration for the Count anomaly detection alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.configDetailedLatencyAlarmList">configDetailedLatencyAlarmList</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig">ApiGatewayRestApiDetailedLatencyAlarmConfig</a>[]</code> | The configuration list for the detailed Latency alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.configIntegrationLatencyAnomalyAlarm">configIntegrationLatencyAnomalyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig">ApiGatewayIntegrationLatencyAnomalyAlarmConfig</a></code> | The configuration for the IntegrationLatency anomaly detection alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.configLatencyAlarm">configLatencyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig">ApiGatewayLatencyAlarmConfig</a></code> | The configuration for the Latency alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.configLatencyAnomalyAlarm">configLatencyAnomalyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig">ApiGatewayLatencyAnomalyAlarmConfig</a></code> | The configuration for the Latency anomaly detection alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics">ApiGatewayRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.api">api</a></code> | <code>aws-cdk-lib.aws_apigateway.RestApi</code> | The ApiGateway api to monitor. |

---

##### `config4XXErrorAlarm`<sup>Required</sup> <a name="config4XXErrorAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.config4XXErrorAlarm"></a>

```typescript
public readonly config4XXErrorAlarm: ApiGateway4XXErrorAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway4XXErrorAlarmConfig">ApiGateway4XXErrorAlarmConfig</a>

The configuration for the 4XXError alarm.

---

##### `config5XXErrorAlarm`<sup>Required</sup> <a name="config5XXErrorAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.config5XXErrorAlarm"></a>

```typescript
public readonly config5XXErrorAlarm: ApiGateway5XXErrorAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGateway5XXErrorAlarmConfig">ApiGateway5XXErrorAlarmConfig</a>

The configuration for the 5XXError alarm.

---

##### `configCountAnomalyAlarm`<sup>Optional</sup> <a name="configCountAnomalyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.configCountAnomalyAlarm"></a>

```typescript
public readonly configCountAnomalyAlarm: ApiGatewayCountAnomalyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayCountAnomalyAlarmConfig">ApiGatewayCountAnomalyAlarmConfig</a>

The configuration for the Count anomaly detection alarm.

---

##### `configDetailedLatencyAlarmList`<sup>Optional</sup> <a name="configDetailedLatencyAlarmList" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.configDetailedLatencyAlarmList"></a>

```typescript
public readonly configDetailedLatencyAlarmList: ApiGatewayRestApiDetailedLatencyAlarmConfig[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiDetailedLatencyAlarmConfig">ApiGatewayRestApiDetailedLatencyAlarmConfig</a>[]

The configuration list for the detailed Latency alarm.

---

##### `configIntegrationLatencyAnomalyAlarm`<sup>Optional</sup> <a name="configIntegrationLatencyAnomalyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.configIntegrationLatencyAnomalyAlarm"></a>

```typescript
public readonly configIntegrationLatencyAnomalyAlarm: ApiGatewayIntegrationLatencyAnomalyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayIntegrationLatencyAnomalyAlarmConfig">ApiGatewayIntegrationLatencyAnomalyAlarmConfig</a>

The configuration for the IntegrationLatency anomaly detection alarm.

---

##### `configLatencyAlarm`<sup>Optional</sup> <a name="configLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.configLatencyAlarm"></a>

```typescript
public readonly configLatencyAlarm: ApiGatewayLatencyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAlarmConfig">ApiGatewayLatencyAlarmConfig</a>

The configuration for the Latency alarm.

---

##### `configLatencyAnomalyAlarm`<sup>Optional</sup> <a name="configLatencyAnomalyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.configLatencyAnomalyAlarm"></a>

```typescript
public readonly configLatencyAnomalyAlarm: ApiGatewayLatencyAnomalyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayLatencyAnomalyAlarmConfig">ApiGatewayLatencyAnomalyAlarmConfig</a>

The configuration for the Latency anomaly detection alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: ApiGatewayRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics">ApiGatewayRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `api`<sup>Required</sup> <a name="api" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsProps.property.api"></a>

```typescript
public readonly api: RestApi;
```

- *Type:* aws-cdk-lib.aws_apigateway.RestApi

The ApiGateway api to monitor.

---

### ApplicationLoadBalancerAlarmBaseConfig <a name="ApplicationLoadBalancerAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmBaseConfig.Initializer"></a>

```typescript
import { ApplicationLoadBalancerAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationLoadBalancerAlarmBaseConfig: ApplicationLoadBalancerAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### ApplicationLoadBalancerAlarmProps <a name="ApplicationLoadBalancerAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmProps"></a>

The common properties for the ApplicationLoadBalancer alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmProps.Initializer"></a>

```typescript
import { ApplicationLoadBalancerAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationLoadBalancerAlarmProps: ApplicationLoadBalancerAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmProps.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer</code> | The ApplicationLoadBalancer to monitor. |

---

##### `loadBalancer`<sup>Required</sup> <a name="loadBalancer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerAlarmProps.property.loadBalancer"></a>

```typescript
public readonly loadBalancer: ApplicationLoadBalancer;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer

The ApplicationLoadBalancer to monitor.

---

### ApplicationLoadBalancerHttpCode4xxCountAlarmConfig <a name="ApplicationLoadBalancerHttpCode4xxCountAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig"></a>

Configuration for the HTTPCode_ELB_4XX_Count alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.Initializer"></a>

```typescript
import { ApplicationLoadBalancerHttpCode4xxCountAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationLoadBalancerHttpCode4xxCountAlarmConfig: ApplicationLoadBalancerHttpCode4xxCountAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the load balancer is generating 4XX errors. A high number of 4XX errors can indicate client-side issues or misconfigured requests.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* loadBalancerName + ' - HTTPCode_ELB_4XX_Count'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8

The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean.

---

### ApplicationLoadBalancerHttpCode4xxCountAlarmProps <a name="ApplicationLoadBalancerHttpCode4xxCountAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps"></a>

The properties for the ApplicationLoadBalancerHttpCode4xxCountAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.Initializer"></a>

```typescript
import { ApplicationLoadBalancerHttpCode4xxCountAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationLoadBalancerHttpCode4xxCountAlarmProps: ApplicationLoadBalancerHttpCode4xxCountAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer</code> | The ApplicationLoadBalancer to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean. |

---

##### `loadBalancer`<sup>Required</sup> <a name="loadBalancer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.loadBalancer"></a>

```typescript
public readonly loadBalancer: ApplicationLoadBalancer;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer

The ApplicationLoadBalancer to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the load balancer is generating 4XX errors. A high number of 4XX errors can indicate client-side issues or misconfigured requests.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* loadBalancerName + ' - HTTPCode_ELB_4XX_Count'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmProps.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8

The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean.

---

### ApplicationLoadBalancerHttpCode5xxCountAlarmConfig <a name="ApplicationLoadBalancerHttpCode5xxCountAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig"></a>

Configuration for the HTTPCode_ELB_5XX_Count alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.Initializer"></a>

```typescript
import { ApplicationLoadBalancerHttpCode5xxCountAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationLoadBalancerHttpCode5xxCountAlarmConfig: ApplicationLoadBalancerHttpCode5xxCountAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the load balancer is generating 5XX errors. A high number of 5XX errors can indicate issues with the load balancer itself.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* loadBalancerName + ' - HTTPCode_ELB_5XX_Count'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8

The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean.

---

### ApplicationLoadBalancerHttpCode5xxCountAlarmProps <a name="ApplicationLoadBalancerHttpCode5xxCountAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps"></a>

The properties for the ApplicationLoadBalancerHttpCode5xxCountAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.Initializer"></a>

```typescript
import { ApplicationLoadBalancerHttpCode5xxCountAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationLoadBalancerHttpCode5xxCountAlarmProps: ApplicationLoadBalancerHttpCode5xxCountAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer</code> | The ApplicationLoadBalancer to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean. |

---

##### `loadBalancer`<sup>Required</sup> <a name="loadBalancer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.loadBalancer"></a>

```typescript
public readonly loadBalancer: ApplicationLoadBalancer;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer

The ApplicationLoadBalancer to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the load balancer is generating 5XX errors. A high number of 5XX errors can indicate issues with the load balancer itself.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* loadBalancerName + ' - HTTPCode_ELB_5XX_Count'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmProps.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8

The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean.

---

### ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig <a name="ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig"></a>

Configuration for the HTTPCode_Target_5XX_Count alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.Initializer"></a>

```typescript
import { ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig: ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the targets are generating 5XX errors. A high number of 5XX errors can indicate issues with the application or backend services.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* loadBalancerName + ' - HTTPCode_Target_5XX_Count'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

You should set this threshold based on the acceptable number of 5XX errors from targets.

---

### ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps <a name="ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps"></a>

The properties for the ApplicationLoadBalancerHttpCodeTarget5xxCountAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.Initializer"></a>

```typescript
import { ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationLoadBalancerHttpCodeTarget5xxCountAlarmProps: ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer</code> | The ApplicationLoadBalancer to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `loadBalancer`<sup>Required</sup> <a name="loadBalancer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.loadBalancer"></a>

```typescript
public readonly loadBalancer: ApplicationLoadBalancer;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer

The ApplicationLoadBalancer to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the targets are generating 5XX errors. A high number of 5XX errors can indicate issues with the application or backend services.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* loadBalancerName + ' - HTTPCode_Target_5XX_Count'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

You should set this threshold based on the acceptable number of 5XX errors from targets.

---

### ApplicationLoadBalancerRecommendedAlarmsConfig <a name="ApplicationLoadBalancerRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an ApplicationLoadBalancer.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { ApplicationLoadBalancerRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationLoadBalancerRecommendedAlarmsConfig: ApplicationLoadBalancerRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.configHttpCode4xxCountAlarm">configHttpCode4xxCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig">ApplicationLoadBalancerHttpCode4xxCountAlarmConfig</a></code> | The configuration for the HTTPCode_ELB_4XX_Count alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.configHttpCode5xxCountAlarm">configHttpCode5xxCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig">ApplicationLoadBalancerHttpCode5xxCountAlarmConfig</a></code> | The configuration for the HTTPCode_ELB_5XX_Count alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.configHttpCodeTarget5xxCountAlarm">configHttpCodeTarget5xxCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig">ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig</a></code> | The configuration for the HTTPCode_Target_5XX_Count alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.configRejectedConnectionCountAlarm">configRejectedConnectionCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig">ApplicationLoadBalancerRejectedConnectionCountAlarmConfig</a></code> | The configuration for the RejectedConnectionCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsMetrics">ApplicationLoadBalancerRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configHttpCode4xxCountAlarm`<sup>Optional</sup> <a name="configHttpCode4xxCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.configHttpCode4xxCountAlarm"></a>

```typescript
public readonly configHttpCode4xxCountAlarm: ApplicationLoadBalancerHttpCode4xxCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig">ApplicationLoadBalancerHttpCode4xxCountAlarmConfig</a>

The configuration for the HTTPCode_ELB_4XX_Count alarm.

---

##### `configHttpCode5xxCountAlarm`<sup>Optional</sup> <a name="configHttpCode5xxCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.configHttpCode5xxCountAlarm"></a>

```typescript
public readonly configHttpCode5xxCountAlarm: ApplicationLoadBalancerHttpCode5xxCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig">ApplicationLoadBalancerHttpCode5xxCountAlarmConfig</a>

The configuration for the HTTPCode_ELB_5XX_Count alarm.

---

##### `configHttpCodeTarget5xxCountAlarm`<sup>Optional</sup> <a name="configHttpCodeTarget5xxCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.configHttpCodeTarget5xxCountAlarm"></a>

```typescript
public readonly configHttpCodeTarget5xxCountAlarm: ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig">ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig</a>

The configuration for the HTTPCode_Target_5XX_Count alarm.

---

##### `configRejectedConnectionCountAlarm`<sup>Optional</sup> <a name="configRejectedConnectionCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.configRejectedConnectionCountAlarm"></a>

```typescript
public readonly configRejectedConnectionCountAlarm: ApplicationLoadBalancerRejectedConnectionCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig">ApplicationLoadBalancerRejectedConnectionCountAlarmConfig</a>

The configuration for the RejectedConnectionCount alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: ApplicationLoadBalancerRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsMetrics">ApplicationLoadBalancerRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### ApplicationLoadBalancerRecommendedAlarmsProps <a name="ApplicationLoadBalancerRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps"></a>

Properties for the ApplicationLoadBalancerRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.Initializer"></a>

```typescript
import { ApplicationLoadBalancerRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationLoadBalancerRecommendedAlarmsProps: ApplicationLoadBalancerRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.configHttpCode4xxCountAlarm">configHttpCode4xxCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig">ApplicationLoadBalancerHttpCode4xxCountAlarmConfig</a></code> | The configuration for the HTTPCode_ELB_4XX_Count alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.configHttpCode5xxCountAlarm">configHttpCode5xxCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig">ApplicationLoadBalancerHttpCode5xxCountAlarmConfig</a></code> | The configuration for the HTTPCode_ELB_5XX_Count alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.configHttpCodeTarget5xxCountAlarm">configHttpCodeTarget5xxCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig">ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig</a></code> | The configuration for the HTTPCode_Target_5XX_Count alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.configRejectedConnectionCountAlarm">configRejectedConnectionCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig">ApplicationLoadBalancerRejectedConnectionCountAlarmConfig</a></code> | The configuration for the RejectedConnectionCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsMetrics">ApplicationLoadBalancerRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer</code> | The ApplicationLoadBalancer to monitor. |

---

##### `configHttpCode4xxCountAlarm`<sup>Optional</sup> <a name="configHttpCode4xxCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.configHttpCode4xxCountAlarm"></a>

```typescript
public readonly configHttpCode4xxCountAlarm: ApplicationLoadBalancerHttpCode4xxCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode4xxCountAlarmConfig">ApplicationLoadBalancerHttpCode4xxCountAlarmConfig</a>

The configuration for the HTTPCode_ELB_4XX_Count alarm.

---

##### `configHttpCode5xxCountAlarm`<sup>Optional</sup> <a name="configHttpCode5xxCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.configHttpCode5xxCountAlarm"></a>

```typescript
public readonly configHttpCode5xxCountAlarm: ApplicationLoadBalancerHttpCode5xxCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCode5xxCountAlarmConfig">ApplicationLoadBalancerHttpCode5xxCountAlarmConfig</a>

The configuration for the HTTPCode_ELB_5XX_Count alarm.

---

##### `configHttpCodeTarget5xxCountAlarm`<sup>Optional</sup> <a name="configHttpCodeTarget5xxCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.configHttpCodeTarget5xxCountAlarm"></a>

```typescript
public readonly configHttpCodeTarget5xxCountAlarm: ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig">ApplicationLoadBalancerHttpCodeTarget5xxCountAlarmConfig</a>

The configuration for the HTTPCode_Target_5XX_Count alarm.

---

##### `configRejectedConnectionCountAlarm`<sup>Optional</sup> <a name="configRejectedConnectionCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.configRejectedConnectionCountAlarm"></a>

```typescript
public readonly configRejectedConnectionCountAlarm: ApplicationLoadBalancerRejectedConnectionCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig">ApplicationLoadBalancerRejectedConnectionCountAlarmConfig</a>

The configuration for the RejectedConnectionCount alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: ApplicationLoadBalancerRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsMetrics">ApplicationLoadBalancerRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `loadBalancer`<sup>Required</sup> <a name="loadBalancer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsProps.property.loadBalancer"></a>

```typescript
public readonly loadBalancer: ApplicationLoadBalancer;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer

The ApplicationLoadBalancer to monitor.

---

### ApplicationLoadBalancerRejectedConnectionCountAlarmConfig <a name="ApplicationLoadBalancerRejectedConnectionCountAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig"></a>

Configuration for the RejectedConnectionCount alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.Initializer"></a>

```typescript
import { ApplicationLoadBalancerRejectedConnectionCountAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationLoadBalancerRejectedConnectionCountAlarmConfig: ApplicationLoadBalancerRejectedConnectionCountAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the load balancer is rejecting connections. Rejected connections can indicate that the load balancer has reached its maximum connection limit.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* loadBalancerName + ' - RejectedConnectionCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

You should set this threshold based on the acceptable number of rejected connections.

---

### ApplicationLoadBalancerRejectedConnectionCountAlarmProps <a name="ApplicationLoadBalancerRejectedConnectionCountAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps"></a>

The properties for the ApplicationLoadBalancerRejectedConnectionCountAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.Initializer"></a>

```typescript
import { ApplicationLoadBalancerRejectedConnectionCountAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationLoadBalancerRejectedConnectionCountAlarmProps: ApplicationLoadBalancerRejectedConnectionCountAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer</code> | The ApplicationLoadBalancer to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `loadBalancer`<sup>Required</sup> <a name="loadBalancer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.loadBalancer"></a>

```typescript
public readonly loadBalancer: ApplicationLoadBalancer;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer

The ApplicationLoadBalancer to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the load balancer is rejecting connections. Rejected connections can indicate that the load balancer has reached its maximum connection limit.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* loadBalancerName + ' - RejectedConnectionCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRejectedConnectionCountAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

You should set this threshold based on the acceptable number of rejected connections.

---

### ApplicationTargetGroupAlarmBaseConfig <a name="ApplicationTargetGroupAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmBaseConfig.Initializer"></a>

```typescript
import { ApplicationTargetGroupAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationTargetGroupAlarmBaseConfig: ApplicationTargetGroupAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### ApplicationTargetGroupAlarmProps <a name="ApplicationTargetGroupAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmProps"></a>

The common properties for the ApplicationTargetGroup alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmProps.Initializer"></a>

```typescript
import { ApplicationTargetGroupAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationTargetGroupAlarmProps: ApplicationTargetGroupAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmProps.property.targetGroup">targetGroup</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup</code> | The ApplicationTargetGroup to monitor. |

---

##### `targetGroup`<sup>Required</sup> <a name="targetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupAlarmProps.property.targetGroup"></a>

```typescript
public readonly targetGroup: ApplicationTargetGroup;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup

The ApplicationTargetGroup to monitor.

---

### ApplicationTargetGroupHealthyHostCountAlarmConfig <a name="ApplicationTargetGroupHealthyHostCountAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig"></a>

Configuration for the HealthyHostCount alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.Initializer"></a>

```typescript
import { ApplicationTargetGroupHealthyHostCountAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationTargetGroupHealthyHostCountAlarmConfig: ApplicationTargetGroupHealthyHostCountAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the number of healthy hosts in the target group falls below the threshold. A low number of healthy hosts can indicate service availability issues.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* targetGroupName + ' - HealthyHostCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 1

The value against which the specified statistic is compared.

You should set this threshold based on the minimum number of healthy hosts
required for your application to function properly.

---

### ApplicationTargetGroupHealthyHostCountAlarmProps <a name="ApplicationTargetGroupHealthyHostCountAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps"></a>

The properties for the ApplicationTargetGroupHealthyHostCountAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.Initializer"></a>

```typescript
import { ApplicationTargetGroupHealthyHostCountAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationTargetGroupHealthyHostCountAlarmProps: ApplicationTargetGroupHealthyHostCountAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.targetGroup">targetGroup</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup</code> | The ApplicationTargetGroup to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `targetGroup`<sup>Required</sup> <a name="targetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.targetGroup"></a>

```typescript
public readonly targetGroup: ApplicationTargetGroup;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup

The ApplicationTargetGroup to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the number of healthy hosts in the target group falls below the threshold. A low number of healthy hosts can indicate service availability issues.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* targetGroupName + ' - HealthyHostCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 1

The value against which the specified statistic is compared.

You should set this threshold based on the minimum number of healthy hosts
required for your application to function properly.

---

### ApplicationTargetGroupRecommendedAlarmsConfig <a name="ApplicationTargetGroupRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an ApplicationTargetGroup.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { ApplicationTargetGroupRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationTargetGroupRecommendedAlarmsConfig: ApplicationTargetGroupRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.configHealthyHostCountAlarm">configHealthyHostCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig">ApplicationTargetGroupHealthyHostCountAlarmConfig</a></code> | The configuration for the HealthyHostCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.configUnHealthyHostCountAlarm">configUnHealthyHostCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig">ApplicationTargetGroupUnHealthyHostCountAlarmConfig</a></code> | The configuration for the UnHealthyHostCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsMetrics">ApplicationTargetGroupRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configHealthyHostCountAlarm`<sup>Optional</sup> <a name="configHealthyHostCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.configHealthyHostCountAlarm"></a>

```typescript
public readonly configHealthyHostCountAlarm: ApplicationTargetGroupHealthyHostCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig">ApplicationTargetGroupHealthyHostCountAlarmConfig</a>

The configuration for the HealthyHostCount alarm.

---

##### `configUnHealthyHostCountAlarm`<sup>Optional</sup> <a name="configUnHealthyHostCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.configUnHealthyHostCountAlarm"></a>

```typescript
public readonly configUnHealthyHostCountAlarm: ApplicationTargetGroupUnHealthyHostCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig">ApplicationTargetGroupUnHealthyHostCountAlarmConfig</a>

The configuration for the UnHealthyHostCount alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: ApplicationTargetGroupRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsMetrics">ApplicationTargetGroupRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### ApplicationTargetGroupRecommendedAlarmsProps <a name="ApplicationTargetGroupRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps"></a>

Properties for the ApplicationTargetGroupRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.Initializer"></a>

```typescript
import { ApplicationTargetGroupRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationTargetGroupRecommendedAlarmsProps: ApplicationTargetGroupRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.configHealthyHostCountAlarm">configHealthyHostCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig">ApplicationTargetGroupHealthyHostCountAlarmConfig</a></code> | The configuration for the HealthyHostCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.configUnHealthyHostCountAlarm">configUnHealthyHostCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig">ApplicationTargetGroupUnHealthyHostCountAlarmConfig</a></code> | The configuration for the UnHealthyHostCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsMetrics">ApplicationTargetGroupRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.targetGroup">targetGroup</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup</code> | The ApplicationTargetGroup to monitor. |

---

##### `configHealthyHostCountAlarm`<sup>Optional</sup> <a name="configHealthyHostCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.configHealthyHostCountAlarm"></a>

```typescript
public readonly configHealthyHostCountAlarm: ApplicationTargetGroupHealthyHostCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupHealthyHostCountAlarmConfig">ApplicationTargetGroupHealthyHostCountAlarmConfig</a>

The configuration for the HealthyHostCount alarm.

---

##### `configUnHealthyHostCountAlarm`<sup>Optional</sup> <a name="configUnHealthyHostCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.configUnHealthyHostCountAlarm"></a>

```typescript
public readonly configUnHealthyHostCountAlarm: ApplicationTargetGroupUnHealthyHostCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig">ApplicationTargetGroupUnHealthyHostCountAlarmConfig</a>

The configuration for the UnHealthyHostCount alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: ApplicationTargetGroupRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsMetrics">ApplicationTargetGroupRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `targetGroup`<sup>Required</sup> <a name="targetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsProps.property.targetGroup"></a>

```typescript
public readonly targetGroup: ApplicationTargetGroup;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup

The ApplicationTargetGroup to monitor.

---

### ApplicationTargetGroupUnHealthyHostCountAlarmConfig <a name="ApplicationTargetGroupUnHealthyHostCountAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig"></a>

Configuration for the UnHealthyHostCount alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.Initializer"></a>

```typescript
import { ApplicationTargetGroupUnHealthyHostCountAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationTargetGroupUnHealthyHostCountAlarmConfig: ApplicationTargetGroupUnHealthyHostCountAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the number of unhealthy hosts in the target group exceeds the threshold. A high number of unhealthy hosts can indicate service health issues.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* targetGroupName + ' - UnHealthyHostCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

You should set this threshold based on the maximum number of unhealthy hosts
that your application can tolerate before service is impacted.

---

### ApplicationTargetGroupUnHealthyHostCountAlarmProps <a name="ApplicationTargetGroupUnHealthyHostCountAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps"></a>

The properties for the ApplicationTargetGroupUnHealthyHostCountAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.Initializer"></a>

```typescript
import { ApplicationTargetGroupUnHealthyHostCountAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const applicationTargetGroupUnHealthyHostCountAlarmProps: ApplicationTargetGroupUnHealthyHostCountAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.targetGroup">targetGroup</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup</code> | The ApplicationTargetGroup to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `targetGroup`<sup>Required</sup> <a name="targetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.targetGroup"></a>

```typescript
public readonly targetGroup: ApplicationTargetGroup;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup

The ApplicationTargetGroup to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the number of unhealthy hosts in the target group exceeds the threshold. A high number of unhealthy hosts can indicate service health issues.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* targetGroupName + ' - UnHealthyHostCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupUnHealthyHostCountAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

You should set this threshold based on the maximum number of unhealthy hosts
that your application can tolerate before service is impacted.

---

### AutoScalingAlarmBaseConfig <a name="AutoScalingAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingAlarmBaseConfig.Initializer"></a>

```typescript
import { AutoScalingAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const autoScalingAlarmBaseConfig: AutoScalingAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### AutoScalingGroupAlarmProps <a name="AutoScalingGroupAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupAlarmProps"></a>

The common properties for the EC2 AutoScalingGroup alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupAlarmProps.Initializer"></a>

```typescript
import { AutoScalingGroupAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const autoScalingGroupAlarmProps: AutoScalingGroupAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupAlarmProps.property.autoScalingGroup">autoScalingGroup</a></code> | <code>aws-cdk-lib.aws_autoscaling.AutoScalingGroup</code> | The EC2 AutoScalingGroup to monitor. |

---

##### `autoScalingGroup`<sup>Required</sup> <a name="autoScalingGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupAlarmProps.property.autoScalingGroup"></a>

```typescript
public readonly autoScalingGroup: AutoScalingGroup;
```

- *Type:* aws-cdk-lib.aws_autoscaling.AutoScalingGroup

The EC2 AutoScalingGroup to monitor.

---

### AutoScalingGroupGroupInServiceCapacityAlarmProps <a name="AutoScalingGroupGroupInServiceCapacityAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps"></a>

The properties for the AutoScalingGroupGroupInServiceCapacityAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.Initializer"></a>

```typescript
import { AutoScalingGroupGroupInServiceCapacityAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const autoScalingGroupGroupInServiceCapacityAlarmProps: AutoScalingGroupGroupInServiceCapacityAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.autoScalingGroup">autoScalingGroup</a></code> | <code>aws-cdk-lib.aws_autoscaling.AutoScalingGroup</code> | The EC2 AutoScalingGroup to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The threshold value should be the minimum capacity required to run your workload. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `autoScalingGroup`<sup>Required</sup> <a name="autoScalingGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.autoScalingGroup"></a>

```typescript
public readonly autoScalingGroup: AutoScalingGroup;
```

- *Type:* aws-cdk-lib.aws_autoscaling.AutoScalingGroup

The EC2 AutoScalingGroup to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The threshold value should be the minimum capacity required to run your workload.

In most cases,
you can set this to match the GroupDesiredCapacity metric.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect a low availability in your auto scaling group because of launch failures or suspended launches.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* autoScalingGroupName + ' - GroupInServiceCapacity'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 10

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupGroupInServiceCapacityAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 10

The number of periods over which data is compared to the specified threshold.

---

### AutoScalingGroupInServiceCapacityAlarmConfig <a name="AutoScalingGroupInServiceCapacityAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig"></a>

Configuration for the GroupInServiceCapacity alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.Initializer"></a>

```typescript
import { AutoScalingGroupInServiceCapacityAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const autoScalingGroupInServiceCapacityAlarmConfig: AutoScalingGroupInServiceCapacityAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The threshold value should be the minimum capacity required to run your workload. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The threshold value should be the minimum capacity required to run your workload.

In most cases,
you can set this to match the GroupDesiredCapacity metric.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect a low availability in your auto scaling group because of launch failures or suspended launches.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* autoScalingGroupName + ' - GroupInServiceCapacity'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 10

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 10

The number of periods over which data is compared to the specified threshold.

---

### AutoScalingGroupRecommendedAlarmsConfig <a name="AutoScalingGroupRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an EC2 AutoScalingGroup.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { AutoScalingGroupRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const autoScalingGroupRecommendedAlarmsConfig: AutoScalingGroupRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig.property.configGroupInServiceCapacityAlarm">configGroupInServiceCapacityAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig">AutoScalingGroupInServiceCapacityAlarmConfig</a></code> | The configuration for the GroupInServiceCapacity alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingRecommendedAlarmsMetrics">AutoScalingRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configGroupInServiceCapacityAlarm`<sup>Required</sup> <a name="configGroupInServiceCapacityAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig.property.configGroupInServiceCapacityAlarm"></a>

```typescript
public readonly configGroupInServiceCapacityAlarm: AutoScalingGroupInServiceCapacityAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig">AutoScalingGroupInServiceCapacityAlarmConfig</a>

The configuration for the GroupInServiceCapacity alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: AutoScalingRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingRecommendedAlarmsMetrics">AutoScalingRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### AutoScalingGroupRecommendedAlarmsProps <a name="AutoScalingGroupRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps"></a>

Properties for the AutoScalingGroupRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.Initializer"></a>

```typescript
import { AutoScalingGroupRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const autoScalingGroupRecommendedAlarmsProps: AutoScalingGroupRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.configGroupInServiceCapacityAlarm">configGroupInServiceCapacityAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig">AutoScalingGroupInServiceCapacityAlarmConfig</a></code> | The configuration for the GroupInServiceCapacity alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingRecommendedAlarmsMetrics">AutoScalingRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.autoScalingGroup">autoScalingGroup</a></code> | <code>aws-cdk-lib.aws_autoscaling.AutoScalingGroup</code> | The EC2 AutoScalingGroup to monitor. |

---

##### `configGroupInServiceCapacityAlarm`<sup>Required</sup> <a name="configGroupInServiceCapacityAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.configGroupInServiceCapacityAlarm"></a>

```typescript
public readonly configGroupInServiceCapacityAlarm: AutoScalingGroupInServiceCapacityAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupInServiceCapacityAlarmConfig">AutoScalingGroupInServiceCapacityAlarmConfig</a>

The configuration for the GroupInServiceCapacity alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: AutoScalingRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingRecommendedAlarmsMetrics">AutoScalingRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `autoScalingGroup`<sup>Required</sup> <a name="autoScalingGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsProps.property.autoScalingGroup"></a>

```typescript
public readonly autoScalingGroup: AutoScalingGroup;
```

- *Type:* aws-cdk-lib.aws_autoscaling.AutoScalingGroup

The EC2 AutoScalingGroup to monitor.

---

### CloudFront5xxErrorRateAlarmConfig <a name="CloudFront5xxErrorRateAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig"></a>

Configuration for the 5xxErrorRate alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.Initializer"></a>

```typescript
import { CloudFront5xxErrorRateAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFront5xxErrorRateAlarmConfig: CloudFront5xxErrorRateAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The recommended threshold value for this alarm is highly dependent on the tolerance for 5xx responses. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The recommended threshold value for this alarm is highly dependent on the tolerance for 5xx responses.

You can analyze historical data and trends, and then set the threshold
accordingly. Because 5xx errors can be caused by transient issues, we recommend that you
set the threshold to a value greater than 0 so that the alarm is not too sensitive.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect problems with serving requests from the origin server, or problems with communication between CloudFront and your origin server.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* distributionId + ' - 5xxErrorRate'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### CloudFrontAlarmBaseConfig <a name="CloudFrontAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontAlarmBaseConfig.Initializer"></a>

```typescript
import { CloudFrontAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontAlarmBaseConfig: CloudFrontAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### CloudFrontDetailedAlarmConfig <a name="CloudFrontDetailedAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDetailedAlarmConfig"></a>

The common properties for the CloudFront alarms when monitoring resource and method dimensions.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDetailedAlarmConfig.Initializer"></a>

```typescript
import { CloudFrontDetailedAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontDetailedAlarmConfig: CloudFrontDetailedAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDetailedAlarmConfig.property.functionName">functionName</a></code> | <code>string</code> | The name of the function to monitor, used as a discriminator in the alarm name. |

---

##### `functionName`<sup>Required</sup> <a name="functionName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDetailedAlarmConfig.property.functionName"></a>

```typescript
public readonly functionName: string;
```

- *Type:* string

The name of the function to monitor, used as a discriminator in the alarm name.

---

### CloudFrontDistribution5xxErrorRateAlarmProps <a name="CloudFrontDistribution5xxErrorRateAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps"></a>

The properties for the CloudFrontDistribution5xxErrorRateAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.Initializer"></a>

```typescript
import { CloudFrontDistribution5xxErrorRateAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontDistribution5xxErrorRateAlarmProps: CloudFrontDistribution5xxErrorRateAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.distribution">distribution</a></code> | <code>aws-cdk-lib.aws_cloudfront.Distribution</code> | The CloudFront Distribution to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The recommended threshold value for this alarm is highly dependent on the tolerance for 5xx responses. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `distribution`<sup>Required</sup> <a name="distribution" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.distribution"></a>

```typescript
public readonly distribution: Distribution;
```

- *Type:* aws-cdk-lib.aws_cloudfront.Distribution

The CloudFront Distribution to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The recommended threshold value for this alarm is highly dependent on the tolerance for 5xx responses.

You can analyze historical data and trends, and then set the threshold
accordingly. Because 5xx errors can be caused by transient issues, we recommend that you
set the threshold to a value greater than 0 so that the alarm is not too sensitive.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect problems with serving requests from the origin server, or problems with communication between CloudFront and your origin server.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* distributionId + ' - 5xxErrorRate'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistribution5xxErrorRateAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### CloudFrontDistributionAlarmProps <a name="CloudFrontDistributionAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionAlarmProps"></a>

The common properties for the CloudFront Distribution alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionAlarmProps.Initializer"></a>

```typescript
import { CloudFrontDistributionAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontDistributionAlarmProps: CloudFrontDistributionAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionAlarmProps.property.distribution">distribution</a></code> | <code>aws-cdk-lib.aws_cloudfront.Distribution</code> | The CloudFront Distribution to monitor. |

---

##### `distribution`<sup>Required</sup> <a name="distribution" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionAlarmProps.property.distribution"></a>

```typescript
public readonly distribution: Distribution;
```

- *Type:* aws-cdk-lib.aws_cloudfront.Distribution

The CloudFront Distribution to monitor.

---

### CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig <a name="CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig"></a>

Configuration for the FunctionExecutionErrors alarm when monitoring resource and method dimensions.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.Initializer"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig: CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | We recommend to set the threshold to 0 because an execution error indicates a problem with the code that occurs at runtime. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.functionName">functionName</a></code> | <code>string</code> | The name of the function to monitor, used as a discriminator in the alarm name. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect execution errors from CloudFront functions.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* distributionId + ' - ' + functionName + ' - FunctionExecutionErrors'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

We recommend to set the threshold to 0 because an execution error indicates a problem with the code that occurs at runtime.

---

##### `functionName`<sup>Required</sup> <a name="functionName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig.property.functionName"></a>

```typescript
public readonly functionName: string;
```

- *Type:* string

The name of the function to monitor, used as a discriminator in the alarm name.

---

### CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps <a name="CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps"></a>

The properties for the CloudFrontDistributionDetailedFunctionExecutionErrorsAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.Initializer"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps: CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.distribution">distribution</a></code> | <code>aws-cdk-lib.aws_cloudfront.Distribution</code> | The CloudFront Distribution to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | We recommend to set the threshold to 0 because an execution error indicates a problem with the code that occurs at runtime. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.functionName">functionName</a></code> | <code>string</code> | The name of the function to monitor, used as a discriminator in the alarm name. |

---

##### `distribution`<sup>Required</sup> <a name="distribution" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.distribution"></a>

```typescript
public readonly distribution: Distribution;
```

- *Type:* aws-cdk-lib.aws_cloudfront.Distribution

The CloudFront Distribution to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect execution errors from CloudFront functions.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* distributionId + ' - ' + functionName + ' - FunctionExecutionErrors'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

We recommend to set the threshold to 0 because an execution error indicates a problem with the code that occurs at runtime.

---

##### `functionName`<sup>Required</sup> <a name="functionName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmProps.property.functionName"></a>

```typescript
public readonly functionName: string;
```

- *Type:* string

The name of the function to monitor, used as a discriminator in the alarm name.

---

### CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig <a name="CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig"></a>

Configuration for the FunctionThrottles alarm when monitoring resource and method dimensions.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.Initializer"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontDistributionDetailedFunctionThrottlesAlarmConfig: CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | We recommend setting the threshold to 0, to allow quicker resolution of the function throttles. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.functionName">functionName</a></code> | <code>string</code> | The name of the function to monitor, used as a discriminator in the alarm name. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect when your CloudFront function is throttled so that you can react and resolve the issue for a smooth customer experience.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* distributionId + ' - ' + functionName + ' - FunctionThrottles'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

We recommend setting the threshold to 0, to allow quicker resolution of the function throttles.

---

##### `functionName`<sup>Required</sup> <a name="functionName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig.property.functionName"></a>

```typescript
public readonly functionName: string;
```

- *Type:* string

The name of the function to monitor, used as a discriminator in the alarm name.

---

### CloudFrontDistributionDetailedFunctionThrottlesAlarmProps <a name="CloudFrontDistributionDetailedFunctionThrottlesAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps"></a>

The properties for the CloudFrontDistributionDetailedFunctionThrottlesAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.Initializer"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionThrottlesAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontDistributionDetailedFunctionThrottlesAlarmProps: CloudFrontDistributionDetailedFunctionThrottlesAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.distribution">distribution</a></code> | <code>aws-cdk-lib.aws_cloudfront.Distribution</code> | The CloudFront Distribution to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | We recommend setting the threshold to 0, to allow quicker resolution of the function throttles. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.functionName">functionName</a></code> | <code>string</code> | The name of the function to monitor, used as a discriminator in the alarm name. |

---

##### `distribution`<sup>Required</sup> <a name="distribution" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.distribution"></a>

```typescript
public readonly distribution: Distribution;
```

- *Type:* aws-cdk-lib.aws_cloudfront.Distribution

The CloudFront Distribution to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect when your CloudFront function is throttled so that you can react and resolve the issue for a smooth customer experience.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* distributionId + ' - ' + functionName + ' - FunctionThrottles'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

We recommend setting the threshold to 0, to allow quicker resolution of the function throttles.

---

##### `functionName`<sup>Required</sup> <a name="functionName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmProps.property.functionName"></a>

```typescript
public readonly functionName: string;
```

- *Type:* string

The name of the function to monitor, used as a discriminator in the alarm name.

---

### CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig <a name="CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig"></a>

Configuration for the FunctionValidationErrors alarm when monitoring resource and method dimensions.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.Initializer"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig: CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | A value greater than 0 indicates a validation error. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.functionName">functionName</a></code> | <code>string</code> | The name of the function to monitor, used as a discriminator in the alarm name. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect validation errors from CloudFront functions.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* distributionId + ' - ' + functionName + ' - FunctionValidationErrors'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 2

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

A value greater than 0 indicates a validation error.

We recommend setting the threshold to 0 because
validation errors imply a problem when CloudFront functions hand off back to CloudFront. For example,
CloudFront needs the HTTP Host header in order to process a request. There is nothing stopping a user
from deleting the Host header in their CloudFront functions code. But when CloudFront gets the response
back and the Host header is missing, CloudFront throws a validation error.

---

##### `functionName`<sup>Required</sup> <a name="functionName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig.property.functionName"></a>

```typescript
public readonly functionName: string;
```

- *Type:* string

The name of the function to monitor, used as a discriminator in the alarm name.

---

### CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps <a name="CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps"></a>

The properties for the CloudFrontDistributionDetailedFunctionValidationErrorsAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.Initializer"></a>

```typescript
import { CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps: CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.distribution">distribution</a></code> | <code>aws-cdk-lib.aws_cloudfront.Distribution</code> | The CloudFront Distribution to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | A value greater than 0 indicates a validation error. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.functionName">functionName</a></code> | <code>string</code> | The name of the function to monitor, used as a discriminator in the alarm name. |

---

##### `distribution`<sup>Required</sup> <a name="distribution" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.distribution"></a>

```typescript
public readonly distribution: Distribution;
```

- *Type:* aws-cdk-lib.aws_cloudfront.Distribution

The CloudFront Distribution to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect validation errors from CloudFront functions.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* distributionId + ' - ' + functionName + ' - FunctionValidationErrors'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 2

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

A value greater than 0 indicates a validation error.

We recommend setting the threshold to 0 because
validation errors imply a problem when CloudFront functions hand off back to CloudFront. For example,
CloudFront needs the HTTP Host header in order to process a request. There is nothing stopping a user
from deleting the Host header in their CloudFront functions code. But when CloudFront gets the response
back and the Host header is missing, CloudFront throws a validation error.

---

##### `functionName`<sup>Required</sup> <a name="functionName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmProps.property.functionName"></a>

```typescript
public readonly functionName: string;
```

- *Type:* string

The name of the function to monitor, used as a discriminator in the alarm name.

---

### CloudFrontDistributionOriginLatencyAlarmProps <a name="CloudFrontDistributionOriginLatencyAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps"></a>

The properties for the CloudFrontDistributionOriginLatencyAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.Initializer"></a>

```typescript
import { CloudFrontDistributionOriginLatencyAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontDistributionOriginLatencyAlarmProps: CloudFrontDistributionOriginLatencyAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.distribution">distribution</a></code> | <code>aws-cdk-lib.aws_cloudfront.Distribution</code> | The CloudFront Distribution to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | You should calculate the value of about 80% of the origin response timeout, and use the result as the threshold value. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `distribution`<sup>Required</sup> <a name="distribution" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.distribution"></a>

```typescript
public readonly distribution: Distribution;
```

- *Type:* aws-cdk-lib.aws_cloudfront.Distribution

The CloudFront Distribution to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

You should calculate the value of about 80% of the origin response timeout, and use the result as the threshold value.

If this metric is consistently close to the origin response timeout value,
you might start experiencing 504 errors.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect problems with the origin server taking too long to respond.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* distributionId + ' - OriginLatency'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionOriginLatencyAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### CloudFrontDistributionRecommendedAlarmsConfig <a name="CloudFrontDistributionRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an CloudFront Service.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { CloudFrontDistributionRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontDistributionRecommendedAlarmsConfig: CloudFrontDistributionRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.config5xxErrorRateAlarm">config5xxErrorRateAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig">CloudFront5xxErrorRateAlarmConfig</a></code> | The configuration for the 5xxErrorRate alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.configOriginLatencyAlarm">configOriginLatencyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig">CloudFrontOriginLatencyAlarmConfig</a></code> | The configuration for the OriginLatency alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.configDetailedFunctionExecutionErrorsAlarmList">configDetailedFunctionExecutionErrorsAlarmList</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig">CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig</a>[]</code> | The configuration list for the detailed FunctionExecutionErrors alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.configDetailedFunctionThrottlesAlarmList">configDetailedFunctionThrottlesAlarmList</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig">CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig</a>[]</code> | The configuration list for the detailed FunctionThrottles alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.configDetailedFunctionValidationErrorsAlarmList">configDetailedFunctionValidationErrorsAlarmList</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig">CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig</a>[]</code> | The configuration list for the detailed FunctionValidationErrors alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsMetrics">CloudFrontRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `config5xxErrorRateAlarm`<sup>Required</sup> <a name="config5xxErrorRateAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.config5xxErrorRateAlarm"></a>

```typescript
public readonly config5xxErrorRateAlarm: CloudFront5xxErrorRateAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig">CloudFront5xxErrorRateAlarmConfig</a>

The configuration for the 5xxErrorRate alarm.

---

##### `configOriginLatencyAlarm`<sup>Required</sup> <a name="configOriginLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.configOriginLatencyAlarm"></a>

```typescript
public readonly configOriginLatencyAlarm: CloudFrontOriginLatencyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig">CloudFrontOriginLatencyAlarmConfig</a>

The configuration for the OriginLatency alarm.

---

##### `configDetailedFunctionExecutionErrorsAlarmList`<sup>Optional</sup> <a name="configDetailedFunctionExecutionErrorsAlarmList" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.configDetailedFunctionExecutionErrorsAlarmList"></a>

```typescript
public readonly configDetailedFunctionExecutionErrorsAlarmList: CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig">CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig</a>[]

The configuration list for the detailed FunctionExecutionErrors alarm.

---

##### `configDetailedFunctionThrottlesAlarmList`<sup>Optional</sup> <a name="configDetailedFunctionThrottlesAlarmList" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.configDetailedFunctionThrottlesAlarmList"></a>

```typescript
public readonly configDetailedFunctionThrottlesAlarmList: CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig">CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig</a>[]

The configuration list for the detailed FunctionThrottles alarm.

---

##### `configDetailedFunctionValidationErrorsAlarmList`<sup>Optional</sup> <a name="configDetailedFunctionValidationErrorsAlarmList" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.configDetailedFunctionValidationErrorsAlarmList"></a>

```typescript
public readonly configDetailedFunctionValidationErrorsAlarmList: CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig">CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig</a>[]

The configuration list for the detailed FunctionValidationErrors alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: CloudFrontRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsMetrics">CloudFrontRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### CloudFrontDistributionRecommendedAlarmsProps <a name="CloudFrontDistributionRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps"></a>

Properties for the CloudFrontDistributionRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.Initializer"></a>

```typescript
import { CloudFrontDistributionRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontDistributionRecommendedAlarmsProps: CloudFrontDistributionRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.config5xxErrorRateAlarm">config5xxErrorRateAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig">CloudFront5xxErrorRateAlarmConfig</a></code> | The configuration for the 5xxErrorRate alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.configOriginLatencyAlarm">configOriginLatencyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig">CloudFrontOriginLatencyAlarmConfig</a></code> | The configuration for the OriginLatency alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.configDetailedFunctionExecutionErrorsAlarmList">configDetailedFunctionExecutionErrorsAlarmList</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig">CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig</a>[]</code> | The configuration list for the detailed FunctionExecutionErrors alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.configDetailedFunctionThrottlesAlarmList">configDetailedFunctionThrottlesAlarmList</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig">CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig</a>[]</code> | The configuration list for the detailed FunctionThrottles alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.configDetailedFunctionValidationErrorsAlarmList">configDetailedFunctionValidationErrorsAlarmList</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig">CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig</a>[]</code> | The configuration list for the detailed FunctionValidationErrors alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsMetrics">CloudFrontRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.distribution">distribution</a></code> | <code>aws-cdk-lib.aws_cloudfront.Distribution</code> | The CloudFront Distribution to monitor. |

---

##### `config5xxErrorRateAlarm`<sup>Required</sup> <a name="config5xxErrorRateAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.config5xxErrorRateAlarm"></a>

```typescript
public readonly config5xxErrorRateAlarm: CloudFront5xxErrorRateAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFront5xxErrorRateAlarmConfig">CloudFront5xxErrorRateAlarmConfig</a>

The configuration for the 5xxErrorRate alarm.

---

##### `configOriginLatencyAlarm`<sup>Required</sup> <a name="configOriginLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.configOriginLatencyAlarm"></a>

```typescript
public readonly configOriginLatencyAlarm: CloudFrontOriginLatencyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig">CloudFrontOriginLatencyAlarmConfig</a>

The configuration for the OriginLatency alarm.

---

##### `configDetailedFunctionExecutionErrorsAlarmList`<sup>Optional</sup> <a name="configDetailedFunctionExecutionErrorsAlarmList" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.configDetailedFunctionExecutionErrorsAlarmList"></a>

```typescript
public readonly configDetailedFunctionExecutionErrorsAlarmList: CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig">CloudFrontDistributionDetailedFunctionExecutionErrorsAlarmConfig</a>[]

The configuration list for the detailed FunctionExecutionErrors alarm.

---

##### `configDetailedFunctionThrottlesAlarmList`<sup>Optional</sup> <a name="configDetailedFunctionThrottlesAlarmList" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.configDetailedFunctionThrottlesAlarmList"></a>

```typescript
public readonly configDetailedFunctionThrottlesAlarmList: CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig">CloudFrontDistributionDetailedFunctionThrottlesAlarmConfig</a>[]

The configuration list for the detailed FunctionThrottles alarm.

---

##### `configDetailedFunctionValidationErrorsAlarmList`<sup>Optional</sup> <a name="configDetailedFunctionValidationErrorsAlarmList" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.configDetailedFunctionValidationErrorsAlarmList"></a>

```typescript
public readonly configDetailedFunctionValidationErrorsAlarmList: CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig">CloudFrontDistributionDetailedFunctionValidationErrorsAlarmConfig</a>[]

The configuration list for the detailed FunctionValidationErrors alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: CloudFrontRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsMetrics">CloudFrontRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `distribution`<sup>Required</sup> <a name="distribution" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsProps.property.distribution"></a>

```typescript
public readonly distribution: Distribution;
```

- *Type:* aws-cdk-lib.aws_cloudfront.Distribution

The CloudFront Distribution to monitor.

---

### CloudFrontFunctionExecutionErrorsAlarmConfig <a name="CloudFrontFunctionExecutionErrorsAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig"></a>

Configuration for the FunctionExecutionErrors alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.Initializer"></a>

```typescript
import { CloudFrontFunctionExecutionErrorsAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontFunctionExecutionErrorsAlarmConfig: CloudFrontFunctionExecutionErrorsAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | We recommend to set the threshold to 0 because an execution error indicates a problem with the code that occurs at runtime. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect execution errors from CloudFront functions.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* distributionId + ' - ' + functionName + ' - FunctionExecutionErrors'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionExecutionErrorsAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

We recommend to set the threshold to 0 because an execution error indicates a problem with the code that occurs at runtime.

---

### CloudFrontFunctionThrottlesAlarmConfig <a name="CloudFrontFunctionThrottlesAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig"></a>

Configuration for the FunctionThrottles alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.Initializer"></a>

```typescript
import { CloudFrontFunctionThrottlesAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontFunctionThrottlesAlarmConfig: CloudFrontFunctionThrottlesAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | We recommend setting the threshold to 0, to allow quicker resolution of the function throttles. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect when your CloudFront function is throttled so that you can react and resolve the issue for a smooth customer experience.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* distributionId + ' - ' + functionName + ' - FunctionThrottles'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionThrottlesAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

We recommend setting the threshold to 0, to allow quicker resolution of the function throttles.

---

### CloudFrontFunctionValidationErrorsAlarmConfig <a name="CloudFrontFunctionValidationErrorsAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig"></a>

Configuration for the FunctionValidationErrors alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.Initializer"></a>

```typescript
import { CloudFrontFunctionValidationErrorsAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontFunctionValidationErrorsAlarmConfig: CloudFrontFunctionValidationErrorsAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | A value greater than 0 indicates a validation error. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect validation errors from CloudFront functions.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* distributionId + ' - ' + functionName + ' - FunctionValidationErrors'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 2

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontFunctionValidationErrorsAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

A value greater than 0 indicates a validation error.

We recommend setting the threshold to 0 because
validation errors imply a problem when CloudFront functions hand off back to CloudFront. For example,
CloudFront needs the HTTP Host header in order to process a request. There is nothing stopping a user
from deleting the Host header in their CloudFront functions code. But when CloudFront gets the response
back and the Host header is missing, CloudFront throws a validation error.

---

### CloudFrontOriginLatencyAlarmConfig <a name="CloudFrontOriginLatencyAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig"></a>

Configuration for the OriginLatency alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.Initializer"></a>

```typescript
import { CloudFrontOriginLatencyAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const cloudFrontOriginLatencyAlarmConfig: CloudFrontOriginLatencyAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | You should calculate the value of about 80% of the origin response timeout, and use the result as the threshold value. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

You should calculate the value of about 80% of the origin response timeout, and use the result as the threshold value.

If this metric is consistently close to the origin response timeout value,
you might start experiencing 504 errors.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect problems with the origin server taking too long to respond.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* distributionId + ' - OriginLatency'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontOriginLatencyAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### DmsAlarmBaseConfig <a name="DmsAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsAlarmBaseConfig.Initializer"></a>

```typescript
import { DmsAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsAlarmBaseConfig: DmsAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1) for regular alarms, Duration.minutes(5) for anomaly detection and throughput alarms

The period over which the specified statistic is applied.

Different alarm types may have different optimal default periods:
- Regular alarms: 1 minute (for responsive monitoring)
- Anomaly detection alarms: 5 minutes (for stable ML model training)
- CDC/throughput alarms: 5 minutes (for trend analysis)

---

### DmsAnomalyDetectionAlarmBaseConfig <a name="DmsAnomalyDetectionAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsAnomalyDetectionAlarmBaseConfig"></a>

The common optional configuration for anomaly detection alarms.

Anomaly detection alarms have a fixed period of 5 minutes as required by AWS CloudWatch,
so the period property is not configurable.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsAnomalyDetectionAlarmBaseConfig.Initializer"></a>

```typescript
import { DmsAnomalyDetectionAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsAnomalyDetectionAlarmBaseConfig: DmsAnomalyDetectionAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsAnomalyDetectionAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsAnomalyDetectionAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsAnomalyDetectionAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsAnomalyDetectionAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsAnomalyDetectionAlarmBaseConfig.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsAnomalyDetectionAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsAnomalyDetectionAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsAnomalyDetectionAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsAnomalyDetectionAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsAnomalyDetectionAlarmBaseConfig.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8 (standard deviation for anomaly detection)

The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean.

---

### DmsCdcLatencySourceAlarmConfig <a name="DmsCdcLatencySourceAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig"></a>

Configuration for the CdcLatencySource alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.Initializer"></a>

```typescript
import { DmsCdcLatencySourceAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsCdcLatencySourceAlarmConfig: DmsCdcLatencySourceAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | The comparison operator to use for the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The latency threshold in seconds. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1) for regular alarms, Duration.minutes(5) for anomaly detection and throughput alarms

The period over which the specified statistic is applied.

Different alarm types may have different optimal default periods:
- Regular alarms: 1 minute (for responsive monitoring)
- Anomaly detection alarms: 5 minutes (for stable ML model training)
- CDC/throughput alarms: 5 minutes (for trend analysis)

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm monitors CDC latency from the source database. High values may indicate replication lag or source database performance issues. This can affect data freshness in real-time applications.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* replicationTaskIdentifier + ' - CDCLatencySource'

The alarm name.

---

##### `comparisonOperator`<sup>Optional</sup> <a name="comparisonOperator" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.comparisonOperator"></a>

```typescript
public readonly comparisonOperator: ComparisonOperator;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.ComparisonOperator
- *Default:* GREATER_THAN_THRESHOLD (for detecting high latency issues)

The comparison operator to use for the alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2 (allow for some variance while still detecting issues)

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3 (to avoid false alarms from temporary fluctuations)

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 300 (5 minutes - for detecting high latency issues)

The latency threshold in seconds.

This alarm can be used to detect:
- High latency indicating replication lag or source database performance issues
- Potential data freshness problems affecting real-time applications

Consider your application's tolerance for data lag when setting this threshold.

---

### DmsCdcLatencyTargetAlarmConfig <a name="DmsCdcLatencyTargetAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig"></a>

Configuration for the CdcLatencyTarget alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.Initializer"></a>

```typescript
import { DmsCdcLatencyTargetAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsCdcLatencyTargetAlarmConfig: DmsCdcLatencyTargetAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | The comparison operator to use for the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The latency threshold in seconds. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1) for regular alarms, Duration.minutes(5) for anomaly detection and throughput alarms

The period over which the specified statistic is applied.

Different alarm types may have different optimal default periods:
- Regular alarms: 1 minute (for responsive monitoring)
- Anomaly detection alarms: 5 minutes (for stable ML model training)
- CDC/throughput alarms: 5 minutes (for trend analysis)

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm monitors CDC latency to the target database. High values may indicate replication lag or target database performance issues. This can affect data consistency in downstream applications.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* replicationTaskIdentifier + ' - CDCLatencyTarget'

The alarm name.

---

##### `comparisonOperator`<sup>Optional</sup> <a name="comparisonOperator" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.comparisonOperator"></a>

```typescript
public readonly comparisonOperator: ComparisonOperator;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.ComparisonOperator
- *Default:* GREATER_THAN_THRESHOLD (for detecting high latency issues)

The comparison operator to use for the alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2 (allow for some variance while still detecting issues)

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3 (to avoid false alarms from temporary fluctuations)

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 300 (5 minutes - for detecting high latency issues)

The latency threshold in seconds.

This alarm can be used to detect:
- High latency indicating target database performance issues or replication lag
- Potential data consistency problems affecting downstream applications

Consider your application's tolerance for data lag when setting this threshold.

---

### DmsCpuUtilizationAlarmConfig <a name="DmsCpuUtilizationAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig"></a>

Configuration for the CpuUtilization alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.Initializer"></a>

```typescript
import { DmsCpuUtilizationAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsCpuUtilizationAlarmConfig: DmsCpuUtilizationAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The percentage (0-100) value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1) for regular alarms, Duration.minutes(5) for anomaly detection and throughput alarms

The period over which the specified statistic is applied.

Different alarm types may have different optimal default periods:
- Regular alarms: 1 minute (for responsive monitoring)
- Anomaly detection alarms: 5 minutes (for stable ML model training)
- CDC/throughput alarms: 5 minutes (for trend analysis)

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high CPU utilization for the DMS Replication Instance. Consistent high CPU utilization can indicate a resource bottleneck or application performance problems.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* replicationInstanceIdentifier + ' - CPUUtilization'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 90

The percentage (0-100) value against which the specified statistic is compared.

The service metrics for CPU utilization might exceed 100% utilization. However,
we recommend that you monitor the metric for high CPU utilization to avoid impacting
other services.

---

### DmsFreeableMemoryAlarmConfig <a name="DmsFreeableMemoryAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig"></a>

Configuration for the FreeableMemory alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.Initializer"></a>

```typescript
import { DmsFreeableMemoryAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsFreeableMemoryAlarmConfig: DmsFreeableMemoryAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The amount in bytes against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1) for regular alarms, Duration.minutes(5) for anomaly detection and throughput alarms

The period over which the specified statistic is applied.

Different alarm types may have different optimal default periods:
- Regular alarms: 1 minute (for responsive monitoring)
- Anomaly detection alarms: 5 minutes (for stable ML model training)
- CDC/throughput alarms: 5 minutes (for trend analysis)

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The amount in bytes against which the specified statistic is compared.

Depending on the workload and instance class, different values for the threshold
can be appropriate. Ideally, available memory should not go below 25% of total
memory for prolonged periods.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to help prevent running out of memory.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* replicationInstanceIdentifier + ' - FreeableMemory'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### DmsFreeStorageSpaceAlarmConfig <a name="DmsFreeStorageSpaceAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig"></a>

Configuration for the FreeStorageSpace alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.Initializer"></a>

```typescript
import { DmsFreeStorageSpaceAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsFreeStorageSpaceAlarmConfig: DmsFreeStorageSpaceAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The amount in bytes value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1) for regular alarms, Duration.minutes(5) for anomaly detection and throughput alarms

The period over which the specified statistic is applied.

Different alarm types may have different optimal default periods:
- Regular alarms: 1 minute (for responsive monitoring)
- Anomaly detection alarms: 5 minutes (for stable ML model training)
- CDC/throughput alarms: 5 minutes (for trend analysis)

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The amount in bytes value against which the specified statistic is compared.

The threshold value will depend on the currently allocated storage space. Typically,
you should calculate the value of 10 percent of the allocated storage space and use
that result as the threshold value.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps prevent storage full issues. This can prevent downtime that occurs when your replication instance runs out of storage.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* replicationInstanceIdentifier + ' - FreeStorageSpace'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### DmsReplicationInstanceAlarmProps <a name="DmsReplicationInstanceAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceAlarmProps"></a>

The common properties for the DMS Replication Instance alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceAlarmProps.Initializer"></a>

```typescript
import { DmsReplicationInstanceAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsReplicationInstanceAlarmProps: DmsReplicationInstanceAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceAlarmProps.property.replicationInstance">replicationInstance</a></code> | <code>aws-cdk-lib.aws_dms.CfnReplicationInstance</code> | The DMS Replication Instance to monitor. |

---

##### `replicationInstance`<sup>Required</sup> <a name="replicationInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceAlarmProps.property.replicationInstance"></a>

```typescript
public readonly replicationInstance: CfnReplicationInstance;
```

- *Type:* aws-cdk-lib.aws_dms.CfnReplicationInstance

The DMS Replication Instance to monitor.

---

### DmsReplicationInstanceCpuUtilizationAlarmProps <a name="DmsReplicationInstanceCpuUtilizationAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps"></a>

The properties for the DmsReplicationInstanceCpuUtilizationAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.Initializer"></a>

```typescript
import { DmsReplicationInstanceCpuUtilizationAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsReplicationInstanceCpuUtilizationAlarmProps: DmsReplicationInstanceCpuUtilizationAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.replicationInstance">replicationInstance</a></code> | <code>aws-cdk-lib.aws_dms.CfnReplicationInstance</code> | The DMS Replication Instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The percentage (0-100) value against which the specified statistic is compared. |

---

##### `replicationInstance`<sup>Required</sup> <a name="replicationInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.replicationInstance"></a>

```typescript
public readonly replicationInstance: CfnReplicationInstance;
```

- *Type:* aws-cdk-lib.aws_dms.CfnReplicationInstance

The DMS Replication Instance to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1) for regular alarms, Duration.minutes(5) for anomaly detection and throughput alarms

The period over which the specified statistic is applied.

Different alarm types may have different optimal default periods:
- Regular alarms: 1 minute (for responsive monitoring)
- Anomaly detection alarms: 5 minutes (for stable ML model training)
- CDC/throughput alarms: 5 minutes (for trend analysis)

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high CPU utilization for the DMS Replication Instance. Consistent high CPU utilization can indicate a resource bottleneck or application performance problems.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* replicationInstanceIdentifier + ' - CPUUtilization'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceCpuUtilizationAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 90

The percentage (0-100) value against which the specified statistic is compared.

The service metrics for CPU utilization might exceed 100% utilization. However,
we recommend that you monitor the metric for high CPU utilization to avoid impacting
other services.

---

### DmsReplicationInstanceFreeableMemoryAlarmProps <a name="DmsReplicationInstanceFreeableMemoryAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps"></a>

The properties for the DmsReplicationInstanceFreeableMemoryAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.Initializer"></a>

```typescript
import { DmsReplicationInstanceFreeableMemoryAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsReplicationInstanceFreeableMemoryAlarmProps: DmsReplicationInstanceFreeableMemoryAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.replicationInstance">replicationInstance</a></code> | <code>aws-cdk-lib.aws_dms.CfnReplicationInstance</code> | The DMS Replication Instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The amount in bytes against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `replicationInstance`<sup>Required</sup> <a name="replicationInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.replicationInstance"></a>

```typescript
public readonly replicationInstance: CfnReplicationInstance;
```

- *Type:* aws-cdk-lib.aws_dms.CfnReplicationInstance

The DMS Replication Instance to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1) for regular alarms, Duration.minutes(5) for anomaly detection and throughput alarms

The period over which the specified statistic is applied.

Different alarm types may have different optimal default periods:
- Regular alarms: 1 minute (for responsive monitoring)
- Anomaly detection alarms: 5 minutes (for stable ML model training)
- CDC/throughput alarms: 5 minutes (for trend analysis)

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The amount in bytes against which the specified statistic is compared.

Depending on the workload and instance class, different values for the threshold
can be appropriate. Ideally, available memory should not go below 25% of total
memory for prolonged periods.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to help prevent running out of memory.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* replicationInstanceIdentifier + ' - FreeableMemory'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeableMemoryAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### DmsReplicationInstanceFreeStorageSpaceAlarmProps <a name="DmsReplicationInstanceFreeStorageSpaceAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps"></a>

The properties for the DmsReplicationInstanceFreeStorageSpaceAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.Initializer"></a>

```typescript
import { DmsReplicationInstanceFreeStorageSpaceAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsReplicationInstanceFreeStorageSpaceAlarmProps: DmsReplicationInstanceFreeStorageSpaceAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.replicationInstance">replicationInstance</a></code> | <code>aws-cdk-lib.aws_dms.CfnReplicationInstance</code> | The DMS Replication Instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The amount in bytes value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `replicationInstance`<sup>Required</sup> <a name="replicationInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.replicationInstance"></a>

```typescript
public readonly replicationInstance: CfnReplicationInstance;
```

- *Type:* aws-cdk-lib.aws_dms.CfnReplicationInstance

The DMS Replication Instance to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1) for regular alarms, Duration.minutes(5) for anomaly detection and throughput alarms

The period over which the specified statistic is applied.

Different alarm types may have different optimal default periods:
- Regular alarms: 1 minute (for responsive monitoring)
- Anomaly detection alarms: 5 minutes (for stable ML model training)
- CDC/throughput alarms: 5 minutes (for trend analysis)

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The amount in bytes value against which the specified statistic is compared.

The threshold value will depend on the currently allocated storage space. Typically,
you should calculate the value of 10 percent of the allocated storage space and use
that result as the threshold value.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps prevent storage full issues. This can prevent downtime that occurs when your replication instance runs out of storage.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* replicationInstanceIdentifier + ' - FreeStorageSpace'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceFreeStorageSpaceAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### DmsReplicationInstanceRecommendedAlarmsConfig <a name="DmsReplicationInstanceRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for a DMS Replication Instance.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { DmsReplicationInstanceRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsReplicationInstanceRecommendedAlarmsConfig: DmsReplicationInstanceRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.configFreeableMemoryAlarm">configFreeableMemoryAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig">DmsFreeableMemoryAlarmConfig</a></code> | The configuration for the FreeableMemory alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.configFreeStorageSpaceAlarm">configFreeStorageSpaceAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig">DmsFreeStorageSpaceAlarmConfig</a></code> | The configuration for the FreeStorageSpace alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.configCpuUtilizationAlarm">configCpuUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig">DmsCpuUtilizationAlarmConfig</a></code> | The configuration for the CpuUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.configSwapUsageAlarm">configSwapUsageAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig">DmsSwapUsageAlarmConfig</a></code> | The configuration for the SwapUsage alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.configWriteIopsAlarm">configWriteIopsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig">DmsWriteIopsAlarmConfig</a></code> | The configuration for the WriteIops alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsMetrics">DmsReplicationInstanceRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configFreeableMemoryAlarm`<sup>Required</sup> <a name="configFreeableMemoryAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.configFreeableMemoryAlarm"></a>

```typescript
public readonly configFreeableMemoryAlarm: DmsFreeableMemoryAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig">DmsFreeableMemoryAlarmConfig</a>

The configuration for the FreeableMemory alarm.

---

##### `configFreeStorageSpaceAlarm`<sup>Required</sup> <a name="configFreeStorageSpaceAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.configFreeStorageSpaceAlarm"></a>

```typescript
public readonly configFreeStorageSpaceAlarm: DmsFreeStorageSpaceAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig">DmsFreeStorageSpaceAlarmConfig</a>

The configuration for the FreeStorageSpace alarm.

---

##### `configCpuUtilizationAlarm`<sup>Optional</sup> <a name="configCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.configCpuUtilizationAlarm"></a>

```typescript
public readonly configCpuUtilizationAlarm: DmsCpuUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig">DmsCpuUtilizationAlarmConfig</a>

The configuration for the CpuUtilization alarm.

---

##### `configSwapUsageAlarm`<sup>Optional</sup> <a name="configSwapUsageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.configSwapUsageAlarm"></a>

```typescript
public readonly configSwapUsageAlarm: DmsSwapUsageAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig">DmsSwapUsageAlarmConfig</a>

The configuration for the SwapUsage alarm.

---

##### `configWriteIopsAlarm`<sup>Optional</sup> <a name="configWriteIopsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.configWriteIopsAlarm"></a>

```typescript
public readonly configWriteIopsAlarm: DmsWriteIopsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig">DmsWriteIopsAlarmConfig</a>

The configuration for the WriteIops alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: DmsReplicationInstanceRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsMetrics">DmsReplicationInstanceRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### DmsReplicationInstanceRecommendedAlarmsProps <a name="DmsReplicationInstanceRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps"></a>

Properties for the DmsReplicationInstanceRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.Initializer"></a>

```typescript
import { DmsReplicationInstanceRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsReplicationInstanceRecommendedAlarmsProps: DmsReplicationInstanceRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.configFreeableMemoryAlarm">configFreeableMemoryAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig">DmsFreeableMemoryAlarmConfig</a></code> | The configuration for the FreeableMemory alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.configFreeStorageSpaceAlarm">configFreeStorageSpaceAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig">DmsFreeStorageSpaceAlarmConfig</a></code> | The configuration for the FreeStorageSpace alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.configCpuUtilizationAlarm">configCpuUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig">DmsCpuUtilizationAlarmConfig</a></code> | The configuration for the CpuUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.configSwapUsageAlarm">configSwapUsageAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig">DmsSwapUsageAlarmConfig</a></code> | The configuration for the SwapUsage alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.configWriteIopsAlarm">configWriteIopsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig">DmsWriteIopsAlarmConfig</a></code> | The configuration for the WriteIops alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsMetrics">DmsReplicationInstanceRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.replicationInstance">replicationInstance</a></code> | <code>aws-cdk-lib.aws_dms.CfnReplicationInstance</code> | The DMS Replication Instance to monitor. |

---

##### `configFreeableMemoryAlarm`<sup>Required</sup> <a name="configFreeableMemoryAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.configFreeableMemoryAlarm"></a>

```typescript
public readonly configFreeableMemoryAlarm: DmsFreeableMemoryAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeableMemoryAlarmConfig">DmsFreeableMemoryAlarmConfig</a>

The configuration for the FreeableMemory alarm.

---

##### `configFreeStorageSpaceAlarm`<sup>Required</sup> <a name="configFreeStorageSpaceAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.configFreeStorageSpaceAlarm"></a>

```typescript
public readonly configFreeStorageSpaceAlarm: DmsFreeStorageSpaceAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsFreeStorageSpaceAlarmConfig">DmsFreeStorageSpaceAlarmConfig</a>

The configuration for the FreeStorageSpace alarm.

---

##### `configCpuUtilizationAlarm`<sup>Optional</sup> <a name="configCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.configCpuUtilizationAlarm"></a>

```typescript
public readonly configCpuUtilizationAlarm: DmsCpuUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCpuUtilizationAlarmConfig">DmsCpuUtilizationAlarmConfig</a>

The configuration for the CpuUtilization alarm.

---

##### `configSwapUsageAlarm`<sup>Optional</sup> <a name="configSwapUsageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.configSwapUsageAlarm"></a>

```typescript
public readonly configSwapUsageAlarm: DmsSwapUsageAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig">DmsSwapUsageAlarmConfig</a>

The configuration for the SwapUsage alarm.

---

##### `configWriteIopsAlarm`<sup>Optional</sup> <a name="configWriteIopsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.configWriteIopsAlarm"></a>

```typescript
public readonly configWriteIopsAlarm: DmsWriteIopsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig">DmsWriteIopsAlarmConfig</a>

The configuration for the WriteIops alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: DmsReplicationInstanceRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsMetrics">DmsReplicationInstanceRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `replicationInstance`<sup>Required</sup> <a name="replicationInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsProps.property.replicationInstance"></a>

```typescript
public readonly replicationInstance: CfnReplicationInstance;
```

- *Type:* aws-cdk-lib.aws_dms.CfnReplicationInstance

The DMS Replication Instance to monitor.

---

### DmsReplicationInstanceSwapUsageAlarmProps <a name="DmsReplicationInstanceSwapUsageAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps"></a>

The properties for the DmsReplicationInstanceSwapUsageAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.Initializer"></a>

```typescript
import { DmsReplicationInstanceSwapUsageAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsReplicationInstanceSwapUsageAlarmProps: DmsReplicationInstanceSwapUsageAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.replicationInstance">replicationInstance</a></code> | <code>aws-cdk-lib.aws_dms.CfnReplicationInstance</code> | The DMS Replication Instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | The comparison operator to use for the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `replicationInstance`<sup>Required</sup> <a name="replicationInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.replicationInstance"></a>

```typescript
public readonly replicationInstance: CfnReplicationInstance;
```

- *Type:* aws-cdk-lib.aws_dms.CfnReplicationInstance

The DMS Replication Instance to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8 (standard deviation for anomaly detection)

The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high swap usage for the DMS Replication Instance. High swap usage can indicate memory pressure or performance issues.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* replicationInstanceIdentifier + ' - SwapUsage'

The alarm name.

---

##### `comparisonOperator`<sup>Optional</sup> <a name="comparisonOperator" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.comparisonOperator"></a>

```typescript
public readonly comparisonOperator: ComparisonOperator;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.ComparisonOperator
- *Default:* GREATER_THAN_UPPER_THRESHOLD (for detecting high swap usage indicating memory pressure)

The comparison operator to use for the alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2 (allow for some variance while still detecting issues)

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceSwapUsageAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3 (to avoid false alarms from temporary fluctuations)

The number of periods over which data is compared to the specified threshold.

---

### DmsReplicationInstanceWriteIopsAlarmProps <a name="DmsReplicationInstanceWriteIopsAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps"></a>

The properties for the DmsReplicationInstanceWriteIopsAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.Initializer"></a>

```typescript
import { DmsReplicationInstanceWriteIopsAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsReplicationInstanceWriteIopsAlarmProps: DmsReplicationInstanceWriteIopsAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.replicationInstance">replicationInstance</a></code> | <code>aws-cdk-lib.aws_dms.CfnReplicationInstance</code> | The DMS Replication Instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The number of write I/O operations per second against which the specified statistic is compared. |

---

##### `replicationInstance`<sup>Required</sup> <a name="replicationInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.replicationInstance"></a>

```typescript
public readonly replicationInstance: CfnReplicationInstance;
```

- *Type:* aws-cdk-lib.aws_dms.CfnReplicationInstance

The DMS Replication Instance to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1) for regular alarms, Duration.minutes(5) for anomaly detection and throughput alarms

The period over which the specified statistic is applied.

Different alarm types may have different optimal default periods:
- Regular alarms: 1 minute (for responsive monitoring)
- Anomaly detection alarms: 5 minutes (for stable ML model training)
- CDC/throughput alarms: 5 minutes (for trend analysis)

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high write IOPS for the DMS Replication Instance. High write IOPS can indicate heavy write activity or potential I/O bottlenecks.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* replicationInstanceIdentifier + ' - WriteIOPS'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceWriteIopsAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 1000

The number of write I/O operations per second against which the specified statistic is compared.

High write IOPS can indicate heavy write activity or potential performance bottlenecks.
Consider your normal workload patterns when setting this threshold.

---

### DmsReplicationTaskAlarmProps <a name="DmsReplicationTaskAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskAlarmProps"></a>

The common properties for the DMS Replication Task alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskAlarmProps.Initializer"></a>

```typescript
import { DmsReplicationTaskAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsReplicationTaskAlarmProps: DmsReplicationTaskAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskAlarmProps.property.replicationTask">replicationTask</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask">ReplicationTask</a></code> | The DMS Replication Task to monitor. |

---

##### `replicationTask`<sup>Required</sup> <a name="replicationTask" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskAlarmProps.property.replicationTask"></a>

```typescript
public readonly replicationTask: ReplicationTask;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask">ReplicationTask</a>

The DMS Replication Task to monitor.

---

### DmsReplicationTaskCdcLatencySourceAlarmProps <a name="DmsReplicationTaskCdcLatencySourceAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps"></a>

The properties for the DmsReplicationTaskCdcLatencySourceAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.Initializer"></a>

```typescript
import { DmsReplicationTaskCdcLatencySourceAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsReplicationTaskCdcLatencySourceAlarmProps: DmsReplicationTaskCdcLatencySourceAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.replicationTask">replicationTask</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask">ReplicationTask</a></code> | The DMS Replication Task to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | The comparison operator to use for the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The latency threshold in seconds. |

---

##### `replicationTask`<sup>Required</sup> <a name="replicationTask" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.replicationTask"></a>

```typescript
public readonly replicationTask: ReplicationTask;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask">ReplicationTask</a>

The DMS Replication Task to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1) for regular alarms, Duration.minutes(5) for anomaly detection and throughput alarms

The period over which the specified statistic is applied.

Different alarm types may have different optimal default periods:
- Regular alarms: 1 minute (for responsive monitoring)
- Anomaly detection alarms: 5 minutes (for stable ML model training)
- CDC/throughput alarms: 5 minutes (for trend analysis)

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm monitors CDC latency from the source database. High values may indicate replication lag or source database performance issues. This can affect data freshness in real-time applications.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* replicationTaskIdentifier + ' - CDCLatencySource'

The alarm name.

---

##### `comparisonOperator`<sup>Optional</sup> <a name="comparisonOperator" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.comparisonOperator"></a>

```typescript
public readonly comparisonOperator: ComparisonOperator;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.ComparisonOperator
- *Default:* GREATER_THAN_THRESHOLD (for detecting high latency issues)

The comparison operator to use for the alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2 (allow for some variance while still detecting issues)

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3 (to avoid false alarms from temporary fluctuations)

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencySourceAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 300 (5 minutes - for detecting high latency issues)

The latency threshold in seconds.

This alarm can be used to detect:
- High latency indicating replication lag or source database performance issues
- Potential data freshness problems affecting real-time applications

Consider your application's tolerance for data lag when setting this threshold.

---

### DmsReplicationTaskCdcLatencyTargetAlarmProps <a name="DmsReplicationTaskCdcLatencyTargetAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps"></a>

The properties for the DmsReplicationTaskCdcLatencyTargetAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.Initializer"></a>

```typescript
import { DmsReplicationTaskCdcLatencyTargetAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsReplicationTaskCdcLatencyTargetAlarmProps: DmsReplicationTaskCdcLatencyTargetAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.replicationTask">replicationTask</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask">ReplicationTask</a></code> | The DMS Replication Task to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | The comparison operator to use for the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The latency threshold in seconds. |

---

##### `replicationTask`<sup>Required</sup> <a name="replicationTask" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.replicationTask"></a>

```typescript
public readonly replicationTask: ReplicationTask;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask">ReplicationTask</a>

The DMS Replication Task to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1) for regular alarms, Duration.minutes(5) for anomaly detection and throughput alarms

The period over which the specified statistic is applied.

Different alarm types may have different optimal default periods:
- Regular alarms: 1 minute (for responsive monitoring)
- Anomaly detection alarms: 5 minutes (for stable ML model training)
- CDC/throughput alarms: 5 minutes (for trend analysis)

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm monitors CDC latency to the target database. High values may indicate replication lag or target database performance issues. This can affect data consistency in downstream applications.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* replicationTaskIdentifier + ' - CDCLatencyTarget'

The alarm name.

---

##### `comparisonOperator`<sup>Optional</sup> <a name="comparisonOperator" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.comparisonOperator"></a>

```typescript
public readonly comparisonOperator: ComparisonOperator;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.ComparisonOperator
- *Default:* GREATER_THAN_THRESHOLD (for detecting high latency issues)

The comparison operator to use for the alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2 (allow for some variance while still detecting issues)

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3 (to avoid false alarms from temporary fluctuations)

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskCdcLatencyTargetAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 300 (5 minutes - for detecting high latency issues)

The latency threshold in seconds.

This alarm can be used to detect:
- High latency indicating target database performance issues or replication lag
- Potential data consistency problems affecting downstream applications

Consider your application's tolerance for data lag when setting this threshold.

---

### DmsReplicationTaskRecommendedAlarmsConfig <a name="DmsReplicationTaskRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for a DMS Replication Task.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { DmsReplicationTaskRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsReplicationTaskRecommendedAlarmsConfig: DmsReplicationTaskRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.configCdcLatencySourceAlarm">configCdcLatencySourceAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig">DmsCdcLatencySourceAlarmConfig</a></code> | The configuration for the CDCLatencySource alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.configCdcLatencyTargetAlarm">configCdcLatencyTargetAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig">DmsCdcLatencyTargetAlarmConfig</a></code> | The configuration for the CDCLatencyTarget alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsMetrics">DmsReplicationTaskRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configCdcLatencySourceAlarm`<sup>Optional</sup> <a name="configCdcLatencySourceAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.configCdcLatencySourceAlarm"></a>

```typescript
public readonly configCdcLatencySourceAlarm: DmsCdcLatencySourceAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig">DmsCdcLatencySourceAlarmConfig</a>

The configuration for the CDCLatencySource alarm.

---

##### `configCdcLatencyTargetAlarm`<sup>Optional</sup> <a name="configCdcLatencyTargetAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.configCdcLatencyTargetAlarm"></a>

```typescript
public readonly configCdcLatencyTargetAlarm: DmsCdcLatencyTargetAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig">DmsCdcLatencyTargetAlarmConfig</a>

The configuration for the CDCLatencyTarget alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: DmsReplicationTaskRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsMetrics">DmsReplicationTaskRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### DmsReplicationTaskRecommendedAlarmsProps <a name="DmsReplicationTaskRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps"></a>

Properties for the DmsReplicationTaskRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.Initializer"></a>

```typescript
import { DmsReplicationTaskRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsReplicationTaskRecommendedAlarmsProps: DmsReplicationTaskRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.configCdcLatencySourceAlarm">configCdcLatencySourceAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig">DmsCdcLatencySourceAlarmConfig</a></code> | The configuration for the CDCLatencySource alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.configCdcLatencyTargetAlarm">configCdcLatencyTargetAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig">DmsCdcLatencyTargetAlarmConfig</a></code> | The configuration for the CDCLatencyTarget alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsMetrics">DmsReplicationTaskRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.replicationTask">replicationTask</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask">ReplicationTask</a></code> | The DMS Replication Task to monitor. |

---

##### `configCdcLatencySourceAlarm`<sup>Optional</sup> <a name="configCdcLatencySourceAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.configCdcLatencySourceAlarm"></a>

```typescript
public readonly configCdcLatencySourceAlarm: DmsCdcLatencySourceAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencySourceAlarmConfig">DmsCdcLatencySourceAlarmConfig</a>

The configuration for the CDCLatencySource alarm.

---

##### `configCdcLatencyTargetAlarm`<sup>Optional</sup> <a name="configCdcLatencyTargetAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.configCdcLatencyTargetAlarm"></a>

```typescript
public readonly configCdcLatencyTargetAlarm: DmsCdcLatencyTargetAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsCdcLatencyTargetAlarmConfig">DmsCdcLatencyTargetAlarmConfig</a>

The configuration for the CDCLatencyTarget alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: DmsReplicationTaskRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsMetrics">DmsReplicationTaskRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `replicationTask`<sup>Required</sup> <a name="replicationTask" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsProps.property.replicationTask"></a>

```typescript
public readonly replicationTask: ReplicationTask;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTask">ReplicationTask</a>

The DMS Replication Task to monitor.

---

### DmsSwapUsageAlarmConfig <a name="DmsSwapUsageAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig"></a>

Configuration for the SwapUsage alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.Initializer"></a>

```typescript
import { DmsSwapUsageAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsSwapUsageAlarmConfig: DmsSwapUsageAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | The comparison operator to use for the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8 (standard deviation for anomaly detection)

The width of the anomaly detection band, expressed as a number of standard deviations from the metric's mean.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high swap usage for the DMS Replication Instance. High swap usage can indicate memory pressure or performance issues.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* replicationInstanceIdentifier + ' - SwapUsage'

The alarm name.

---

##### `comparisonOperator`<sup>Optional</sup> <a name="comparisonOperator" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.comparisonOperator"></a>

```typescript
public readonly comparisonOperator: ComparisonOperator;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.ComparisonOperator
- *Default:* GREATER_THAN_UPPER_THRESHOLD (for detecting high swap usage indicating memory pressure)

The comparison operator to use for the alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2 (allow for some variance while still detecting issues)

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsSwapUsageAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3 (to avoid false alarms from temporary fluctuations)

The number of periods over which data is compared to the specified threshold.

---

### DmsWriteIopsAlarmConfig <a name="DmsWriteIopsAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig"></a>

Configuration for the WriteIops alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.Initializer"></a>

```typescript
import { DmsWriteIopsAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dmsWriteIopsAlarmConfig: DmsWriteIopsAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The number of write I/O operations per second against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1) for regular alarms, Duration.minutes(5) for anomaly detection and throughput alarms

The period over which the specified statistic is applied.

Different alarm types may have different optimal default periods:
- Regular alarms: 1 minute (for responsive monitoring)
- Anomaly detection alarms: 5 minutes (for stable ML model training)
- CDC/throughput alarms: 5 minutes (for trend analysis)

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high write IOPS for the DMS Replication Instance. High write IOPS can indicate heavy write activity or potential I/O bottlenecks.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* replicationInstanceIdentifier + ' - WriteIOPS'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsWriteIopsAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 1000

The number of write I/O operations per second against which the specified statistic is compared.

High write IOPS can indicate heavy write activity or potential performance bottlenecks.
Consider your normal workload patterns when setting this threshold.

---

### DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig <a name="DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig"></a>

Configuration for the AgeOfOldestUnreplicatedRecord alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.Initializer"></a>

```typescript
import { DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig: DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold according to the desired replication delay measured in milliseconds. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Set the threshold according to the desired replication delay measured in milliseconds.

This value depends on your workload's requirements and expected performance.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can monitor unsuccessful replication attempts and the resulting delay in replication to the Kinesis data stream.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* tableName + ' - AgeOfOldestUnreplicatedRecord'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

### DynamoDbAlarmBaseConfig <a name="DynamoDbAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAlarmBaseConfig.Initializer"></a>

```typescript
import { DynamoDbAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbAlarmBaseConfig: DynamoDbAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### DynamoDbFailedToReplicateRecordCountAlarmConfig <a name="DynamoDbFailedToReplicateRecordCountAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig"></a>

Configuration for the FailedToReplicateRecordCount alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.Initializer"></a>

```typescript
import { DynamoDbFailedToReplicateRecordCountAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbFailedToReplicateRecordCountAlarmConfig: DynamoDbFailedToReplicateRecordCountAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold to 0 to detect any records that DynamoDB failed to replicate. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can monitor the number of records that DynamoDB failed to replicate to your Kinesis data stream because of the item size limit of Kinesis Data Streams.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* tableName + ' - FailedToReplicateRecordCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 1

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 1

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Set the threshold to 0 to detect any records that DynamoDB failed to replicate.

---

### DynamoDbReadThrottleEventsAlarmConfig <a name="DynamoDbReadThrottleEventsAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig"></a>

Configuration for the ReadThrottleEvents alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.Initializer"></a>

```typescript
import { DynamoDbReadThrottleEventsAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbReadThrottleEventsAlarmConfig: DynamoDbReadThrottleEventsAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold according to the expected read traffic for the DynamoDB table, accounting for an acceptable level of throttling. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Set the threshold according to the expected read traffic for the DynamoDB table, accounting for an acceptable level of throttling.

It is important to monitor whether
you are under provisioned and not causing consistent throttling. You can also analyze
historical data to find the acceptable throttling level for the application workload,
and then tune the threshold to be higher than your usual throttling level. Throttled
requests should be retried by the application or service as they are transient. Therefore,
a very low threshold may cause the alarm to be too sensitive, causing unwanted state transitions.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect sustained throttling for read requests to the DynamoDB table. Sustained throttling of read requests can negatively impact your workload read operations and reduce the overall efficiency of the system.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* tableName + ' - ReadThrottleEvents'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### DynamoDbSystemErrorsAlarmConfig <a name="DynamoDbSystemErrorsAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig"></a>

Configuration for the SystemErrors alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.Initializer"></a>

```typescript
import { DynamoDbSystemErrorsAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbSystemErrorsAlarmConfig: DynamoDbSystemErrorsAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold according to the expected traffic, accounting for an acceptable level of system errors. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Set the threshold according to the expected traffic, accounting for an acceptable level of system errors.

You can also analyze historical data to find the acceptable error count for the application workload, and
then tune the threshold accordingly. System errors should be retried by the application/service as they are
transient. Therefore, a very low threshold might cause the alarm to be too sensitive, causing unwanted state
transitions.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect sustained system errors for the DynamoDB table requests. System errors indicate internal service errors from DynamoDB and helps correlate to the issue that the client is having.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* tableName + ' - SystemErrors'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

### DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps <a name="DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps"></a>

The properties for the DynamoDbTableAgeOfOldestUnreplicatedRecordAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.Initializer"></a>

```typescript
import { DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps: DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.table">table</a></code> | <code>aws-cdk-lib.aws_dynamodb.Table</code> | The DynamoDb Table to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold according to the desired replication delay measured in milliseconds. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `table`<sup>Required</sup> <a name="table" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.table"></a>

```typescript
public readonly table: Table;
```

- *Type:* aws-cdk-lib.aws_dynamodb.Table

The DynamoDb Table to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Set the threshold according to the desired replication delay measured in milliseconds.

This value depends on your workload's requirements and expected performance.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can monitor unsuccessful replication attempts and the resulting delay in replication to the Kinesis data stream.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* tableName + ' - AgeOfOldestUnreplicatedRecord'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAgeOfOldestUnreplicatedRecordAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

### DynamoDbTableAlarmProps <a name="DynamoDbTableAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAlarmProps"></a>

The common properties for the DynamoDb Table alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAlarmProps.Initializer"></a>

```typescript
import { DynamoDbTableAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbTableAlarmProps: DynamoDbTableAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAlarmProps.property.table">table</a></code> | <code>aws-cdk-lib.aws_dynamodb.Table</code> | The DynamoDb Table to monitor. |

---

##### `table`<sup>Required</sup> <a name="table" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableAlarmProps.property.table"></a>

```typescript
public readonly table: Table;
```

- *Type:* aws-cdk-lib.aws_dynamodb.Table

The DynamoDb Table to monitor.

---

### DynamoDbTableFailedToReplicateRecordCountAlarmProps <a name="DynamoDbTableFailedToReplicateRecordCountAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps"></a>

The properties for the DynamoDbTableFailedToReplicateRecordCountAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.Initializer"></a>

```typescript
import { DynamoDbTableFailedToReplicateRecordCountAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbTableFailedToReplicateRecordCountAlarmProps: DynamoDbTableFailedToReplicateRecordCountAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.table">table</a></code> | <code>aws-cdk-lib.aws_dynamodb.Table</code> | The DynamoDb Table to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold to 0 to detect any records that DynamoDB failed to replicate. |

---

##### `table`<sup>Required</sup> <a name="table" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.table"></a>

```typescript
public readonly table: Table;
```

- *Type:* aws-cdk-lib.aws_dynamodb.Table

The DynamoDb Table to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can monitor the number of records that DynamoDB failed to replicate to your Kinesis data stream because of the item size limit of Kinesis Data Streams.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* tableName + ' - FailedToReplicateRecordCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 1

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 1

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableFailedToReplicateRecordCountAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Set the threshold to 0 to detect any records that DynamoDB failed to replicate.

---

### DynamoDbTableReadThrottleEventsAlarmProps <a name="DynamoDbTableReadThrottleEventsAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps"></a>

The properties for the DynamoDbTableReadThrottleEventsAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.Initializer"></a>

```typescript
import { DynamoDbTableReadThrottleEventsAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbTableReadThrottleEventsAlarmProps: DynamoDbTableReadThrottleEventsAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.table">table</a></code> | <code>aws-cdk-lib.aws_dynamodb.Table</code> | The DynamoDb Table to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold according to the expected read traffic for the DynamoDB table, accounting for an acceptable level of throttling. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `table`<sup>Required</sup> <a name="table" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.table"></a>

```typescript
public readonly table: Table;
```

- *Type:* aws-cdk-lib.aws_dynamodb.Table

The DynamoDb Table to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Set the threshold according to the expected read traffic for the DynamoDB table, accounting for an acceptable level of throttling.

It is important to monitor whether
you are under provisioned and not causing consistent throttling. You can also analyze
historical data to find the acceptable throttling level for the application workload,
and then tune the threshold to be higher than your usual throttling level. Throttled
requests should be retried by the application or service as they are transient. Therefore,
a very low threshold may cause the alarm to be too sensitive, causing unwanted state transitions.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect sustained throttling for read requests to the DynamoDB table. Sustained throttling of read requests can negatively impact your workload read operations and reduce the overall efficiency of the system.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* tableName + ' - ReadThrottleEvents'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableReadThrottleEventsAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### DynamoDbTableRecommendedAlarmsConfig <a name="DynamoDbTableRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an DynamoDb Service.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { DynamoDbTableRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbTableRecommendedAlarmsConfig: DynamoDbTableRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.configReadThrottleEventsAlarm">configReadThrottleEventsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig">DynamoDbReadThrottleEventsAlarmConfig</a></code> | The configuration for the ReadThrottleEvents alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.configSystemErrorsAlarm">configSystemErrorsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig">DynamoDbSystemErrorsAlarmConfig</a></code> | The configuration for the SystemErrors alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.configWriteThrottleEventsAlarm">configWriteThrottleEventsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig">DynamoDbWriteThrottleEventsAlarmConfig</a></code> | The configuration for the WriteThrottleEvents alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.configAgeOfOldestUnreplicatedRecordAlarm">configAgeOfOldestUnreplicatedRecordAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig">DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig</a></code> | The configuration for the AgeOfOldestUnreplicatedRecord alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.configFailedToReplicateRecordCountAlarm">configFailedToReplicateRecordCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig">DynamoDbFailedToReplicateRecordCountAlarmConfig</a></code> | The configuration for the FailedToReplicateRecordCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.configThrottledPutRecordCountAlarm">configThrottledPutRecordCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig">DynamoDbThrottledPutRecordCountAlarmConfig</a></code> | The configuration for the ThrottledPutRecordCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics">DynamoDbRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configReadThrottleEventsAlarm`<sup>Required</sup> <a name="configReadThrottleEventsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.configReadThrottleEventsAlarm"></a>

```typescript
public readonly configReadThrottleEventsAlarm: DynamoDbReadThrottleEventsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig">DynamoDbReadThrottleEventsAlarmConfig</a>

The configuration for the ReadThrottleEvents alarm.

---

##### `configSystemErrorsAlarm`<sup>Required</sup> <a name="configSystemErrorsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.configSystemErrorsAlarm"></a>

```typescript
public readonly configSystemErrorsAlarm: DynamoDbSystemErrorsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig">DynamoDbSystemErrorsAlarmConfig</a>

The configuration for the SystemErrors alarm.

---

##### `configWriteThrottleEventsAlarm`<sup>Required</sup> <a name="configWriteThrottleEventsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.configWriteThrottleEventsAlarm"></a>

```typescript
public readonly configWriteThrottleEventsAlarm: DynamoDbWriteThrottleEventsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig">DynamoDbWriteThrottleEventsAlarmConfig</a>

The configuration for the WriteThrottleEvents alarm.

---

##### `configAgeOfOldestUnreplicatedRecordAlarm`<sup>Optional</sup> <a name="configAgeOfOldestUnreplicatedRecordAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.configAgeOfOldestUnreplicatedRecordAlarm"></a>

```typescript
public readonly configAgeOfOldestUnreplicatedRecordAlarm: DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig">DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig</a>

The configuration for the AgeOfOldestUnreplicatedRecord alarm.

---

##### `configFailedToReplicateRecordCountAlarm`<sup>Optional</sup> <a name="configFailedToReplicateRecordCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.configFailedToReplicateRecordCountAlarm"></a>

```typescript
public readonly configFailedToReplicateRecordCountAlarm: DynamoDbFailedToReplicateRecordCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig">DynamoDbFailedToReplicateRecordCountAlarmConfig</a>

The configuration for the FailedToReplicateRecordCount alarm.

---

##### `configThrottledPutRecordCountAlarm`<sup>Optional</sup> <a name="configThrottledPutRecordCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.configThrottledPutRecordCountAlarm"></a>

```typescript
public readonly configThrottledPutRecordCountAlarm: DynamoDbThrottledPutRecordCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig">DynamoDbThrottledPutRecordCountAlarmConfig</a>

The configuration for the ThrottledPutRecordCount alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: DynamoDbRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics">DynamoDbRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### DynamoDbTableRecommendedAlarmsProps <a name="DynamoDbTableRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps"></a>

Properties for the DynamoDbTableRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.Initializer"></a>

```typescript
import { DynamoDbTableRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbTableRecommendedAlarmsProps: DynamoDbTableRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.configReadThrottleEventsAlarm">configReadThrottleEventsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig">DynamoDbReadThrottleEventsAlarmConfig</a></code> | The configuration for the ReadThrottleEvents alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.configSystemErrorsAlarm">configSystemErrorsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig">DynamoDbSystemErrorsAlarmConfig</a></code> | The configuration for the SystemErrors alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.configWriteThrottleEventsAlarm">configWriteThrottleEventsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig">DynamoDbWriteThrottleEventsAlarmConfig</a></code> | The configuration for the WriteThrottleEvents alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.configAgeOfOldestUnreplicatedRecordAlarm">configAgeOfOldestUnreplicatedRecordAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig">DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig</a></code> | The configuration for the AgeOfOldestUnreplicatedRecord alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.configFailedToReplicateRecordCountAlarm">configFailedToReplicateRecordCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig">DynamoDbFailedToReplicateRecordCountAlarmConfig</a></code> | The configuration for the FailedToReplicateRecordCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.configThrottledPutRecordCountAlarm">configThrottledPutRecordCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig">DynamoDbThrottledPutRecordCountAlarmConfig</a></code> | The configuration for the ThrottledPutRecordCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics">DynamoDbRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.table">table</a></code> | <code>aws-cdk-lib.aws_dynamodb.Table</code> | The DynamoDb Table to monitor. |

---

##### `configReadThrottleEventsAlarm`<sup>Required</sup> <a name="configReadThrottleEventsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.configReadThrottleEventsAlarm"></a>

```typescript
public readonly configReadThrottleEventsAlarm: DynamoDbReadThrottleEventsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbReadThrottleEventsAlarmConfig">DynamoDbReadThrottleEventsAlarmConfig</a>

The configuration for the ReadThrottleEvents alarm.

---

##### `configSystemErrorsAlarm`<sup>Required</sup> <a name="configSystemErrorsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.configSystemErrorsAlarm"></a>

```typescript
public readonly configSystemErrorsAlarm: DynamoDbSystemErrorsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbSystemErrorsAlarmConfig">DynamoDbSystemErrorsAlarmConfig</a>

The configuration for the SystemErrors alarm.

---

##### `configWriteThrottleEventsAlarm`<sup>Required</sup> <a name="configWriteThrottleEventsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.configWriteThrottleEventsAlarm"></a>

```typescript
public readonly configWriteThrottleEventsAlarm: DynamoDbWriteThrottleEventsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig">DynamoDbWriteThrottleEventsAlarmConfig</a>

The configuration for the WriteThrottleEvents alarm.

---

##### `configAgeOfOldestUnreplicatedRecordAlarm`<sup>Optional</sup> <a name="configAgeOfOldestUnreplicatedRecordAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.configAgeOfOldestUnreplicatedRecordAlarm"></a>

```typescript
public readonly configAgeOfOldestUnreplicatedRecordAlarm: DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig">DynamoDbAgeOfOldestUnreplicatedRecordAlarmConfig</a>

The configuration for the AgeOfOldestUnreplicatedRecord alarm.

---

##### `configFailedToReplicateRecordCountAlarm`<sup>Optional</sup> <a name="configFailedToReplicateRecordCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.configFailedToReplicateRecordCountAlarm"></a>

```typescript
public readonly configFailedToReplicateRecordCountAlarm: DynamoDbFailedToReplicateRecordCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbFailedToReplicateRecordCountAlarmConfig">DynamoDbFailedToReplicateRecordCountAlarmConfig</a>

The configuration for the FailedToReplicateRecordCount alarm.

---

##### `configThrottledPutRecordCountAlarm`<sup>Optional</sup> <a name="configThrottledPutRecordCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.configThrottledPutRecordCountAlarm"></a>

```typescript
public readonly configThrottledPutRecordCountAlarm: DynamoDbThrottledPutRecordCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig">DynamoDbThrottledPutRecordCountAlarmConfig</a>

The configuration for the ThrottledPutRecordCount alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: DynamoDbRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics">DynamoDbRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `table`<sup>Required</sup> <a name="table" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsProps.property.table"></a>

```typescript
public readonly table: Table;
```

- *Type:* aws-cdk-lib.aws_dynamodb.Table

The DynamoDb Table to monitor.

---

### DynamoDbTableSystemErrorsAlarmProps <a name="DynamoDbTableSystemErrorsAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps"></a>

The properties for the DynamoDbTableSystemErrorsAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.Initializer"></a>

```typescript
import { DynamoDbTableSystemErrorsAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbTableSystemErrorsAlarmProps: DynamoDbTableSystemErrorsAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.table">table</a></code> | <code>aws-cdk-lib.aws_dynamodb.Table</code> | The DynamoDb Table to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold according to the expected traffic, accounting for an acceptable level of system errors. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `table`<sup>Required</sup> <a name="table" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.table"></a>

```typescript
public readonly table: Table;
```

- *Type:* aws-cdk-lib.aws_dynamodb.Table

The DynamoDb Table to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Set the threshold according to the expected traffic, accounting for an acceptable level of system errors.

You can also analyze historical data to find the acceptable error count for the application workload, and
then tune the threshold accordingly. System errors should be retried by the application/service as they are
transient. Therefore, a very low threshold might cause the alarm to be too sensitive, causing unwanted state
transitions.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect sustained system errors for the DynamoDB table requests. System errors indicate internal service errors from DynamoDB and helps correlate to the issue that the client is having.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* tableName + ' - SystemErrors'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableSystemErrorsAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

### DynamoDbTableThrottledPutRecordCountAlarmProps <a name="DynamoDbTableThrottledPutRecordCountAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps"></a>

The properties for the DynamoDbTableThrottledPutRecordCountAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.Initializer"></a>

```typescript
import { DynamoDbTableThrottledPutRecordCountAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbTableThrottledPutRecordCountAlarmProps: DynamoDbTableThrottledPutRecordCountAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.table">table</a></code> | <code>aws-cdk-lib.aws_dynamodb.Table</code> | The DynamoDb Table to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | You might experience some throttling during exceptional usage peaks, but throttled records should remain as low as possible to avoid higher replication latency (DynamoDB retries sending throttled records to the Kinesis data stream). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `table`<sup>Required</sup> <a name="table" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.table"></a>

```typescript
public readonly table: Table;
```

- *Type:* aws-cdk-lib.aws_dynamodb.Table

The DynamoDb Table to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

You might experience some throttling during exceptional usage peaks, but throttled records should remain as low as possible to avoid higher replication latency (DynamoDB retries sending throttled records to the Kinesis data stream).

Set the threshold to a number which can help you
catch regular excessive throttling. You can also analyze historical data of this metric to find
the acceptable throttling rates for the application workload. Tune the threshold to a value that
the application can tolerate based on your use case.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can monitor the number of records that that were throttled by your Kinesis data stream because of insufficient Kinesis data stream capacity.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* tableName + ' - ThrottledPutRecordCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 10

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableThrottledPutRecordCountAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 10

The number of periods over which data is compared to the specified threshold.

---

### DynamoDbTableWriteThrottleEventsAlarmProps <a name="DynamoDbTableWriteThrottleEventsAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps"></a>

The properties for the DynamoDbTableWriteThrottleEventsAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.Initializer"></a>

```typescript
import { DynamoDbTableWriteThrottleEventsAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbTableWriteThrottleEventsAlarmProps: DynamoDbTableWriteThrottleEventsAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.table">table</a></code> | <code>aws-cdk-lib.aws_dynamodb.Table</code> | The DynamoDb Table to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold according to the expected write traffic for the DynamoDB table, accounting for an acceptable level of throttling. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `table`<sup>Required</sup> <a name="table" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.table"></a>

```typescript
public readonly table: Table;
```

- *Type:* aws-cdk-lib.aws_dynamodb.Table

The DynamoDb Table to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Set the threshold according to the expected write traffic for the DynamoDB table, accounting for an acceptable level of throttling.

It is important to monitor if you
are under provisioned and not causing consistent throttling. You can also analyze
historical data to find the acceptable level of throttling for the application workload,
and then tune the threshold to a value higher than your usual acceptable throttling level.
Throttled requests should be retried by the application/service as they are transient.
Therefore, a very low threshold might cause the alarm to be too sensitive, causing
unwanted state transitions.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect sustained throttling for write requests to the DynamoDB table. Sustained throttling of write requests can negatively impact your workload write operations and reduce the overall efficiency of the system.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* tableName + ' - WriteThrottleEvents'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableWriteThrottleEventsAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### DynamoDbThrottledPutRecordCountAlarmConfig <a name="DynamoDbThrottledPutRecordCountAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig"></a>

Configuration for the ThrottledPutRecordCount alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.Initializer"></a>

```typescript
import { DynamoDbThrottledPutRecordCountAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbThrottledPutRecordCountAlarmConfig: DynamoDbThrottledPutRecordCountAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | You might experience some throttling during exceptional usage peaks, but throttled records should remain as low as possible to avoid higher replication latency (DynamoDB retries sending throttled records to the Kinesis data stream). |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

You might experience some throttling during exceptional usage peaks, but throttled records should remain as low as possible to avoid higher replication latency (DynamoDB retries sending throttled records to the Kinesis data stream).

Set the threshold to a number which can help you
catch regular excessive throttling. You can also analyze historical data of this metric to find
the acceptable throttling rates for the application workload. Tune the threshold to a value that
the application can tolerate based on your use case.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can monitor the number of records that that were throttled by your Kinesis data stream because of insufficient Kinesis data stream capacity.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* tableName + ' - ThrottledPutRecordCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 10

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbThrottledPutRecordCountAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 10

The number of periods over which data is compared to the specified threshold.

---

### DynamoDbWriteThrottleEventsAlarmConfig <a name="DynamoDbWriteThrottleEventsAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig"></a>

Configuration for the WriteThrottleEvents alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.Initializer"></a>

```typescript
import { DynamoDbWriteThrottleEventsAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const dynamoDbWriteThrottleEventsAlarmConfig: DynamoDbWriteThrottleEventsAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold according to the expected write traffic for the DynamoDB table, accounting for an acceptable level of throttling. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Set the threshold according to the expected write traffic for the DynamoDB table, accounting for an acceptable level of throttling.

It is important to monitor if you
are under provisioned and not causing consistent throttling. You can also analyze
historical data to find the acceptable level of throttling for the application workload,
and then tune the threshold to a value higher than your usual acceptable throttling level.
Throttled requests should be retried by the application/service as they are transient.
Therefore, a very low threshold might cause the alarm to be too sensitive, causing
unwanted state transitions.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect sustained throttling for write requests to the DynamoDB table. Sustained throttling of write requests can negatively impact your workload write operations and reduce the overall efficiency of the system.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* tableName + ' - WriteThrottleEvents'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbWriteThrottleEventsAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### Ec2AlarmBaseConfig <a name="Ec2AlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2AlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2AlarmBaseConfig.Initializer"></a>

```typescript
import { Ec2AlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ec2AlarmBaseConfig: Ec2AlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2AlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2AlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2AlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2AlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2AlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2AlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2AlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2AlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2AlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2AlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### Ec2CpuUtilizationAlarmConfig <a name="Ec2CpuUtilizationAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig"></a>

Configuration for the CPUUtilization alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.Initializer"></a>

```typescript
import { Ec2CpuUtilizationAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ec2CpuUtilizationAlarmConfig: Ec2CpuUtilizationAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | Typically, you can set the threshold for CPU utilization to 70-80%. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high CPU utilization.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* instanceId + ' - CPUUtilization'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 80

Typically, you can set the threshold for CPU utilization to 70-80%.

However, you can
adjust this value based on your acceptable performance level and workload characteristics.
For some systems, consistently high CPU utilization may be normal and not indicate a problem,
while for others, it may be cause of concern. Analyze historical CPU utilization data to
identify the usage, find what CPU utilization is acceptable for your system, and set the
threshold accordingly.

---

### Ec2InstanceAlarmProps <a name="Ec2InstanceAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceAlarmProps"></a>

The common properties for the EC2 Instance alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceAlarmProps.Initializer"></a>

```typescript
import { Ec2InstanceAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ec2InstanceAlarmProps: Ec2InstanceAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceAlarmProps.property.instance">instance</a></code> | <code>aws-cdk-lib.aws_ec2.Instance</code> | The EC2 Instance to monitor. |

---

##### `instance`<sup>Required</sup> <a name="instance" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceAlarmProps.property.instance"></a>

```typescript
public readonly instance: Instance;
```

- *Type:* aws-cdk-lib.aws_ec2.Instance

The EC2 Instance to monitor.

---

### Ec2InstanceCpuUtilizationAlarmProps <a name="Ec2InstanceCpuUtilizationAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps"></a>

The properties for the Ec2InstanceCpuUtilizationAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.Initializer"></a>

```typescript
import { Ec2InstanceCpuUtilizationAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ec2InstanceCpuUtilizationAlarmProps: Ec2InstanceCpuUtilizationAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.instance">instance</a></code> | <code>aws-cdk-lib.aws_ec2.Instance</code> | The EC2 Instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | Typically, you can set the threshold for CPU utilization to 70-80%. |

---

##### `instance`<sup>Required</sup> <a name="instance" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.instance"></a>

```typescript
public readonly instance: Instance;
```

- *Type:* aws-cdk-lib.aws_ec2.Instance

The EC2 Instance to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high CPU utilization.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* instanceId + ' - CPUUtilization'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceCpuUtilizationAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 80

Typically, you can set the threshold for CPU utilization to 70-80%.

However, you can
adjust this value based on your acceptable performance level and workload characteristics.
For some systems, consistently high CPU utilization may be normal and not indicate a problem,
while for others, it may be cause of concern. Analyze historical CPU utilization data to
identify the usage, find what CPU utilization is acceptable for your system, and set the
threshold accordingly.

---

### Ec2InstanceRecommendedAlarmsConfig <a name="Ec2InstanceRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an EC2 Service.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { Ec2InstanceRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ec2InstanceRecommendedAlarmsConfig: Ec2InstanceRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.configCpuUtilizationAlarm">configCpuUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig">Ec2CpuUtilizationAlarmConfig</a></code> | The configuration for the CPUUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.configStatusCheckFailedAlarm">configStatusCheckFailedAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig">Ec2StatusCheckFailedAlarmConfig</a></code> | The configuration for the StatusCheckFailed alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsMetrics">Ec2RecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configCpuUtilizationAlarm`<sup>Optional</sup> <a name="configCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.configCpuUtilizationAlarm"></a>

```typescript
public readonly configCpuUtilizationAlarm: Ec2CpuUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig">Ec2CpuUtilizationAlarmConfig</a>

The configuration for the CPUUtilization alarm.

---

##### `configStatusCheckFailedAlarm`<sup>Optional</sup> <a name="configStatusCheckFailedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.configStatusCheckFailedAlarm"></a>

```typescript
public readonly configStatusCheckFailedAlarm: Ec2StatusCheckFailedAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig">Ec2StatusCheckFailedAlarmConfig</a>

The configuration for the StatusCheckFailed alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: Ec2RecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsMetrics">Ec2RecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### Ec2InstanceRecommendedAlarmsProps <a name="Ec2InstanceRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps"></a>

Properties for the Ec2InstanceRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.Initializer"></a>

```typescript
import { Ec2InstanceRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ec2InstanceRecommendedAlarmsProps: Ec2InstanceRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.configCpuUtilizationAlarm">configCpuUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig">Ec2CpuUtilizationAlarmConfig</a></code> | The configuration for the CPUUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.configStatusCheckFailedAlarm">configStatusCheckFailedAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig">Ec2StatusCheckFailedAlarmConfig</a></code> | The configuration for the StatusCheckFailed alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsMetrics">Ec2RecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.instance">instance</a></code> | <code>aws-cdk-lib.aws_ec2.Instance</code> | The EC2 Instance to monitor. |

---

##### `configCpuUtilizationAlarm`<sup>Optional</sup> <a name="configCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.configCpuUtilizationAlarm"></a>

```typescript
public readonly configCpuUtilizationAlarm: Ec2CpuUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2CpuUtilizationAlarmConfig">Ec2CpuUtilizationAlarmConfig</a>

The configuration for the CPUUtilization alarm.

---

##### `configStatusCheckFailedAlarm`<sup>Optional</sup> <a name="configStatusCheckFailedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.configStatusCheckFailedAlarm"></a>

```typescript
public readonly configStatusCheckFailedAlarm: Ec2StatusCheckFailedAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig">Ec2StatusCheckFailedAlarmConfig</a>

The configuration for the StatusCheckFailed alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: Ec2RecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsMetrics">Ec2RecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `instance`<sup>Required</sup> <a name="instance" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsProps.property.instance"></a>

```typescript
public readonly instance: Instance;
```

- *Type:* aws-cdk-lib.aws_ec2.Instance

The EC2 Instance to monitor.

---

### Ec2InstanceStatusCheckFailedAlarmProps <a name="Ec2InstanceStatusCheckFailedAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps"></a>

The properties for the Ec2InstanceStatusCheckFailedAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.Initializer"></a>

```typescript
import { Ec2InstanceStatusCheckFailedAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ec2InstanceStatusCheckFailedAlarmProps: Ec2InstanceStatusCheckFailedAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.instance">instance</a></code> | <code>aws-cdk-lib.aws_ec2.Instance</code> | The EC2 Instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | When a status check fails, the value of this metric is 1. |

---

##### `instance`<sup>Required</sup> <a name="instance" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.instance"></a>

```typescript
public readonly instance: Instance;
```

- *Type:* aws-cdk-lib.aws_ec2.Instance

The EC2 Instance to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect the underlying problems with instances, including both system status check failures and instance status check failures.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* instanceId + ' - StatusCheckFailed'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 2

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceStatusCheckFailedAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 1

When a status check fails, the value of this metric is 1.

The threshold is set so that whenever the
status check fails, the alarm is in ALARM state.

---

### Ec2StatusCheckFailedAlarmConfig <a name="Ec2StatusCheckFailedAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig"></a>

Configuration for the StatusCheckFailed alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.Initializer"></a>

```typescript
import { Ec2StatusCheckFailedAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ec2StatusCheckFailedAlarmConfig: Ec2StatusCheckFailedAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | When a status check fails, the value of this metric is 1. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect the underlying problems with instances, including both system status check failures and instance status check failures.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* instanceId + ' - StatusCheckFailed'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 2

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2StatusCheckFailedAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 1

When a status check fails, the value of this metric is 1.

The threshold is set so that whenever the
status check fails, the alarm is in ALARM state.

---

### EcsAlarmBaseConfig <a name="EcsAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsAlarmBaseConfig.Initializer"></a>

```typescript
import { EcsAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ecsAlarmBaseConfig: EcsAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### EcsCpuUtilizationAlarmConfig <a name="EcsCpuUtilizationAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig"></a>

Configuration for the CpuUtilization alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.Initializer"></a>

```typescript
import { EcsCpuUtilizationAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ecsCpuUtilizationAlarmConfig: EcsCpuUtilizationAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The percentage (0-100) value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high CPU utilization for the ECS service. Consistent high CPU utilization can indicate a resource bottleneck or application performance problems.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* clusterName + ' - ' + serviceName + ' - CPUUtilization'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 90

The percentage (0-100) value against which the specified statistic is compared.

The service metrics for CPU utilization might exceed 100% utilization. However,
we recommend that you monitor the metric for high CPU utilization to avoid impacting
other services. Set the threshold to about 90-95%. We recommend that you update your
task definitions to reflect actual usage to prevent future issues with other services.

---

### EcsEphemeralStorageUtilizedAlarmConfig <a name="EcsEphemeralStorageUtilizedAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig"></a>

Configuration for the EphemeralStorageUtilized alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.Initializer"></a>

```typescript
import { EcsEphemeralStorageUtilizedAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ecsEphemeralStorageUtilizedAlarmConfig: EcsEphemeralStorageUtilizedAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value in GB against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value in GB against which the specified statistic is compared.

Set the threshold to about 90% of the ephemeral storage size. You can adjust this
value based on your acceptable ephemeral storage utilization of the Fargate cluster.
For some systems, a consistently high ephemeral storage utilized might be normal,
while for others, it might lead to failure of the container.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high ephemeral storage usage for the Fargate cluster. Consistent high ephemeral storage utilized can indicate that the disk is full and it might lead to failure of the container.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* clusterName + ' - ' + serviceName + ' - EphemeralStorageUtilized'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### EcsMemoryUtilizationAlarmConfig <a name="EcsMemoryUtilizationAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig"></a>

Configuration for the MemoryUtilization alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.Initializer"></a>

```typescript
import { EcsMemoryUtilizationAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ecsMemoryUtilizationAlarmConfig: EcsMemoryUtilizationAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The percentage (0-100) value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high memory utilization for the ECS service. Consistent high memory utilization can indicate a resource bottleneck or application performance problems.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* clusterName + ' - ' + serviceName + ' - MemoryUtilization'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 90

The percentage (0-100) value against which the specified statistic is compared.

The memory utilization is measured as the total memory in use by the tasks that
belong to the service, divided by the total memory reserved for the tasks that
belong to the service.

---

### EcsRunningTaskCountAlarmConfig <a name="EcsRunningTaskCountAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig"></a>

Configuration for the RunningTaskCount alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.Initializer"></a>

```typescript
import { EcsRunningTaskCountAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ecsRunningTaskCountAlarmConfig: EcsRunningTaskCountAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect whether the number of running tasks are too low. A consistent low running task count can indicate ECS service deployment or performance issues.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* clusterName + ' - ' + serviceName + ' - RunningTaskCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

You can adjust the threshold based on the minimum running task count of the ECS
service. If the running task count is 0, the Amazon ECS service will be unavailable.

---

### EcsServiceAlarmProps <a name="EcsServiceAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceAlarmProps"></a>

The common properties for the ECS service alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceAlarmProps.Initializer"></a>

```typescript
import { EcsServiceAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ecsServiceAlarmProps: EcsServiceAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceAlarmProps.property.service">service</a></code> | <code>aws-cdk-lib.aws_ecs.FargateService</code> | The ECS service to monitor. |

---

##### `service`<sup>Required</sup> <a name="service" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceAlarmProps.property.service"></a>

```typescript
public readonly service: FargateService;
```

- *Type:* aws-cdk-lib.aws_ecs.FargateService

The ECS service to monitor.

---

### EcsServiceCpuUtilizationAlarmProps <a name="EcsServiceCpuUtilizationAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps"></a>

The properties for the EcsServiceCpuUtilizationAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.Initializer"></a>

```typescript
import { EcsServiceCpuUtilizationAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ecsServiceCpuUtilizationAlarmProps: EcsServiceCpuUtilizationAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.service">service</a></code> | <code>aws-cdk-lib.aws_ecs.FargateService</code> | The ECS service to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The percentage (0-100) value against which the specified statistic is compared. |

---

##### `service`<sup>Required</sup> <a name="service" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.service"></a>

```typescript
public readonly service: FargateService;
```

- *Type:* aws-cdk-lib.aws_ecs.FargateService

The ECS service to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high CPU utilization for the ECS service. Consistent high CPU utilization can indicate a resource bottleneck or application performance problems.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* clusterName + ' - ' + serviceName + ' - CPUUtilization'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceCpuUtilizationAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 90

The percentage (0-100) value against which the specified statistic is compared.

The service metrics for CPU utilization might exceed 100% utilization. However,
we recommend that you monitor the metric for high CPU utilization to avoid impacting
other services. Set the threshold to about 90-95%. We recommend that you update your
task definitions to reflect actual usage to prevent future issues with other services.

---

### EcsServiceEphemeralStorageUtilizedAlarmProps <a name="EcsServiceEphemeralStorageUtilizedAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps"></a>

The properties for the EcsServiceEphemeralStorageUtilizedAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.Initializer"></a>

```typescript
import { EcsServiceEphemeralStorageUtilizedAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ecsServiceEphemeralStorageUtilizedAlarmProps: EcsServiceEphemeralStorageUtilizedAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.service">service</a></code> | <code>aws-cdk-lib.aws_ecs.FargateService</code> | The ECS service to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value in GB against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `service`<sup>Required</sup> <a name="service" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.service"></a>

```typescript
public readonly service: FargateService;
```

- *Type:* aws-cdk-lib.aws_ecs.FargateService

The ECS service to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value in GB against which the specified statistic is compared.

Set the threshold to about 90% of the ephemeral storage size. You can adjust this
value based on your acceptable ephemeral storage utilization of the Fargate cluster.
For some systems, a consistently high ephemeral storage utilized might be normal,
while for others, it might lead to failure of the container.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high ephemeral storage usage for the Fargate cluster. Consistent high ephemeral storage utilized can indicate that the disk is full and it might lead to failure of the container.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* clusterName + ' - ' + serviceName + ' - EphemeralStorageUtilized'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceEphemeralStorageUtilizedAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### EcsServiceMemoryUtilizationAlarmProps <a name="EcsServiceMemoryUtilizationAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps"></a>

The properties for the EcsServiceMemoryUtilizationAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.Initializer"></a>

```typescript
import { EcsServiceMemoryUtilizationAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ecsServiceMemoryUtilizationAlarmProps: EcsServiceMemoryUtilizationAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.service">service</a></code> | <code>aws-cdk-lib.aws_ecs.FargateService</code> | The ECS service to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The percentage (0-100) value against which the specified statistic is compared. |

---

##### `service`<sup>Required</sup> <a name="service" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.service"></a>

```typescript
public readonly service: FargateService;
```

- *Type:* aws-cdk-lib.aws_ecs.FargateService

The ECS service to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high memory utilization for the ECS service. Consistent high memory utilization can indicate a resource bottleneck or application performance problems.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* clusterName + ' - ' + serviceName + ' - MemoryUtilization'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceMemoryUtilizationAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 90

The percentage (0-100) value against which the specified statistic is compared.

The memory utilization is measured as the total memory in use by the tasks that
belong to the service, divided by the total memory reserved for the tasks that
belong to the service.

---

### EcsServiceRecommendedAlarmsConfig <a name="EcsServiceRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an ECS Service.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { EcsServiceRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ecsServiceRecommendedAlarmsConfig: EcsServiceRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.configEphemeralStorageUtilizedAlarm">configEphemeralStorageUtilizedAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig">EcsEphemeralStorageUtilizedAlarmConfig</a></code> | The configuration for the EphemeralStorageUtilized alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.configCpuUtilizationAlarm">configCpuUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig">EcsCpuUtilizationAlarmConfig</a></code> | The configuration for the CpuUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.configMemoryUtilizationAlarm">configMemoryUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig">EcsMemoryUtilizationAlarmConfig</a></code> | The configuration for the MemoryUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.configRunningTaskCountAlarm">configRunningTaskCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig">EcsRunningTaskCountAlarmConfig</a></code> | The configuration for the RunningTaskCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsMetrics">EcsRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configEphemeralStorageUtilizedAlarm`<sup>Required</sup> <a name="configEphemeralStorageUtilizedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.configEphemeralStorageUtilizedAlarm"></a>

```typescript
public readonly configEphemeralStorageUtilizedAlarm: EcsEphemeralStorageUtilizedAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig">EcsEphemeralStorageUtilizedAlarmConfig</a>

The configuration for the EphemeralStorageUtilized alarm.

---

##### `configCpuUtilizationAlarm`<sup>Optional</sup> <a name="configCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.configCpuUtilizationAlarm"></a>

```typescript
public readonly configCpuUtilizationAlarm: EcsCpuUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig">EcsCpuUtilizationAlarmConfig</a>

The configuration for the CpuUtilization alarm.

---

##### `configMemoryUtilizationAlarm`<sup>Optional</sup> <a name="configMemoryUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.configMemoryUtilizationAlarm"></a>

```typescript
public readonly configMemoryUtilizationAlarm: EcsMemoryUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig">EcsMemoryUtilizationAlarmConfig</a>

The configuration for the MemoryUtilization alarm.

---

##### `configRunningTaskCountAlarm`<sup>Optional</sup> <a name="configRunningTaskCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.configRunningTaskCountAlarm"></a>

```typescript
public readonly configRunningTaskCountAlarm: EcsRunningTaskCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig">EcsRunningTaskCountAlarmConfig</a>

The configuration for the RunningTaskCount alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: EcsRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsMetrics">EcsRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### EcsServiceRecommendedAlarmsProps <a name="EcsServiceRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps"></a>

Properties for the EcsServiceRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.Initializer"></a>

```typescript
import { EcsServiceRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ecsServiceRecommendedAlarmsProps: EcsServiceRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.configEphemeralStorageUtilizedAlarm">configEphemeralStorageUtilizedAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig">EcsEphemeralStorageUtilizedAlarmConfig</a></code> | The configuration for the EphemeralStorageUtilized alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.configCpuUtilizationAlarm">configCpuUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig">EcsCpuUtilizationAlarmConfig</a></code> | The configuration for the CpuUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.configMemoryUtilizationAlarm">configMemoryUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig">EcsMemoryUtilizationAlarmConfig</a></code> | The configuration for the MemoryUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.configRunningTaskCountAlarm">configRunningTaskCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig">EcsRunningTaskCountAlarmConfig</a></code> | The configuration for the RunningTaskCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsMetrics">EcsRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.service">service</a></code> | <code>aws-cdk-lib.aws_ecs.FargateService</code> | The ECS service to monitor. |

---

##### `configEphemeralStorageUtilizedAlarm`<sup>Required</sup> <a name="configEphemeralStorageUtilizedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.configEphemeralStorageUtilizedAlarm"></a>

```typescript
public readonly configEphemeralStorageUtilizedAlarm: EcsEphemeralStorageUtilizedAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsEphemeralStorageUtilizedAlarmConfig">EcsEphemeralStorageUtilizedAlarmConfig</a>

The configuration for the EphemeralStorageUtilized alarm.

---

##### `configCpuUtilizationAlarm`<sup>Optional</sup> <a name="configCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.configCpuUtilizationAlarm"></a>

```typescript
public readonly configCpuUtilizationAlarm: EcsCpuUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsCpuUtilizationAlarmConfig">EcsCpuUtilizationAlarmConfig</a>

The configuration for the CpuUtilization alarm.

---

##### `configMemoryUtilizationAlarm`<sup>Optional</sup> <a name="configMemoryUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.configMemoryUtilizationAlarm"></a>

```typescript
public readonly configMemoryUtilizationAlarm: EcsMemoryUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsMemoryUtilizationAlarmConfig">EcsMemoryUtilizationAlarmConfig</a>

The configuration for the MemoryUtilization alarm.

---

##### `configRunningTaskCountAlarm`<sup>Optional</sup> <a name="configRunningTaskCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.configRunningTaskCountAlarm"></a>

```typescript
public readonly configRunningTaskCountAlarm: EcsRunningTaskCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRunningTaskCountAlarmConfig">EcsRunningTaskCountAlarmConfig</a>

The configuration for the RunningTaskCount alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: EcsRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsMetrics">EcsRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `service`<sup>Required</sup> <a name="service" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsProps.property.service"></a>

```typescript
public readonly service: FargateService;
```

- *Type:* aws-cdk-lib.aws_ecs.FargateService

The ECS service to monitor.

---

### EcsServiceRunningTaskCountAlarmProps <a name="EcsServiceRunningTaskCountAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps"></a>

The properties for the EcsServiceRunningTaskCountAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.Initializer"></a>

```typescript
import { EcsServiceRunningTaskCountAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const ecsServiceRunningTaskCountAlarmProps: EcsServiceRunningTaskCountAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.service">service</a></code> | <code>aws-cdk-lib.aws_ecs.FargateService</code> | The ECS service to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `service`<sup>Required</sup> <a name="service" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.service"></a>

```typescript
public readonly service: FargateService;
```

- *Type:* aws-cdk-lib.aws_ecs.FargateService

The ECS service to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect whether the number of running tasks are too low. A consistent low running task count can indicate ECS service deployment or performance issues.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* clusterName + ' - ' + serviceName + ' - RunningTaskCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRunningTaskCountAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

You can adjust the threshold based on the minimum running task count of the ECS
service. If the running task count is 0, the Amazon ECS service will be unavailable.

---

### EfsAlarmBaseConfig <a name="EfsAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsAlarmBaseConfig.Initializer"></a>

```typescript
import { EfsAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const efsAlarmBaseConfig: EfsAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### EfsBurstCreditBalanceAlarmConfig <a name="EfsBurstCreditBalanceAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig"></a>

Configuration for the BurstCreditBalance alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.Initializer"></a>

```typescript
import { EfsBurstCreditBalanceAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const efsBurstCreditBalanceAlarmConfig: EfsBurstCreditBalanceAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | When the file system run out of burst credits and even if the baseline throughput rate is lower, EFS continues to provide a metered throughput of 1 MiBps to all file systems. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect low burst credit balance of the file system. Consistent low burst credit balance can be an indicator of the slowing down in throughput and increase in I/O latency.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* fileSystemId + ' - BurstCreditBalance'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

When the file system run out of burst credits and even if the baseline throughput rate is lower, EFS continues to provide a metered throughput of 1 MiBps to all file systems.

However, it is recommended
that the metric is monitored for low burst credit balance to avoid the file system acting as resource
bottleneck for the applications. The threshold can be set around 0 bytes.

---

### EfsFileSystemAlarmProps <a name="EfsFileSystemAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemAlarmProps"></a>

The common properties for the EFS FileSystem alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemAlarmProps.Initializer"></a>

```typescript
import { EfsFileSystemAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const efsFileSystemAlarmProps: EfsFileSystemAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemAlarmProps.property.fileSystem">fileSystem</a></code> | <code>aws-cdk-lib.aws_efs.FileSystem</code> | The EFS FileSystem to monitor. |

---

##### `fileSystem`<sup>Required</sup> <a name="fileSystem" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemAlarmProps.property.fileSystem"></a>

```typescript
public readonly fileSystem: FileSystem;
```

- *Type:* aws-cdk-lib.aws_efs.FileSystem

The EFS FileSystem to monitor.

---

### EfsFileSystemBurstCreditBalanceAlarmProps <a name="EfsFileSystemBurstCreditBalanceAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps"></a>

The properties for the EfsFileSystemBurstCreditBalanceAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.Initializer"></a>

```typescript
import { EfsFileSystemBurstCreditBalanceAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const efsFileSystemBurstCreditBalanceAlarmProps: EfsFileSystemBurstCreditBalanceAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.fileSystem">fileSystem</a></code> | <code>aws-cdk-lib.aws_efs.FileSystem</code> | The EFS FileSystem to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | When the file system run out of burst credits and even if the baseline throughput rate is lower, EFS continues to provide a metered throughput of 1 MiBps to all file systems. |

---

##### `fileSystem`<sup>Required</sup> <a name="fileSystem" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.fileSystem"></a>

```typescript
public readonly fileSystem: FileSystem;
```

- *Type:* aws-cdk-lib.aws_efs.FileSystem

The EFS FileSystem to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect low burst credit balance of the file system. Consistent low burst credit balance can be an indicator of the slowing down in throughput and increase in I/O latency.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* fileSystemId + ' - BurstCreditBalance'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemBurstCreditBalanceAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

When the file system run out of burst credits and even if the baseline throughput rate is lower, EFS continues to provide a metered throughput of 1 MiBps to all file systems.

However, it is recommended
that the metric is monitored for low burst credit balance to avoid the file system acting as resource
bottleneck for the applications. The threshold can be set around 0 bytes.

---

### EfsFileSystemPercentIOLimitAlarmProps <a name="EfsFileSystemPercentIOLimitAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps"></a>

The properties for the EfsFileSystemPercentIOLimitAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.Initializer"></a>

```typescript
import { EfsFileSystemPercentIOLimitAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const efsFileSystemPercentIOLimitAlarmProps: EfsFileSystemPercentIOLimitAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.fileSystem">fileSystem</a></code> | <code>aws-cdk-lib.aws_efs.FileSystem</code> | The EFS FileSystem to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | When the file system reaches its I/O limit, it may respond to read and write requests slower. |

---

##### `fileSystem`<sup>Required</sup> <a name="fileSystem" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.fileSystem"></a>

```typescript
public readonly fileSystem: FileSystem;
```

- *Type:* aws-cdk-lib.aws_efs.FileSystem

The EFS FileSystem to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect how close the file system is to reach the I/O limit of the General Purpose performance mode. Consistent high I/O percentage can be an indicator of the file system cannot scale with respect to I/O requests enough and the file system can be a resource bottleneck for the applications that use the file system.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* fileSystemId + ' - PercentIOLimit'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemPercentIOLimitAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 100

When the file system reaches its I/O limit, it may respond to read and write requests slower.

Therefore, it is recommended that the metric is monitored to avoid impacting applications that
use the file system. The threshold can be set around 100%. However, this value can be adjusted
to a lower value based on file system characteristics.

---

### EfsFileSystemRecommendedAlarmsConfig <a name="EfsFileSystemRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an EFS Service.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { EfsFileSystemRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const efsFileSystemRecommendedAlarmsConfig: EfsFileSystemRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.configBurstCreditBalanceAlarm">configBurstCreditBalanceAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig">EfsBurstCreditBalanceAlarmConfig</a></code> | The configuration for the BurstCreditBalance alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.configPercentIOLimitAlarm">configPercentIOLimitAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig">EfsPercentIOLimitAlarmConfig</a></code> | The configuration for the PercentIOLimit alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsMetrics">EfsRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configBurstCreditBalanceAlarm`<sup>Optional</sup> <a name="configBurstCreditBalanceAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.configBurstCreditBalanceAlarm"></a>

```typescript
public readonly configBurstCreditBalanceAlarm: EfsBurstCreditBalanceAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig">EfsBurstCreditBalanceAlarmConfig</a>

The configuration for the BurstCreditBalance alarm.

---

##### `configPercentIOLimitAlarm`<sup>Optional</sup> <a name="configPercentIOLimitAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.configPercentIOLimitAlarm"></a>

```typescript
public readonly configPercentIOLimitAlarm: EfsPercentIOLimitAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig">EfsPercentIOLimitAlarmConfig</a>

The configuration for the PercentIOLimit alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: EfsRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsMetrics">EfsRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### EfsFileSystemRecommendedAlarmsProps <a name="EfsFileSystemRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps"></a>

Properties for the EfsFileSystemRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.Initializer"></a>

```typescript
import { EfsFileSystemRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const efsFileSystemRecommendedAlarmsProps: EfsFileSystemRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.configBurstCreditBalanceAlarm">configBurstCreditBalanceAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig">EfsBurstCreditBalanceAlarmConfig</a></code> | The configuration for the BurstCreditBalance alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.configPercentIOLimitAlarm">configPercentIOLimitAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig">EfsPercentIOLimitAlarmConfig</a></code> | The configuration for the PercentIOLimit alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsMetrics">EfsRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.fileSystem">fileSystem</a></code> | <code>aws-cdk-lib.aws_efs.FileSystem</code> | The EFS FileSystem to monitor. |

---

##### `configBurstCreditBalanceAlarm`<sup>Optional</sup> <a name="configBurstCreditBalanceAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.configBurstCreditBalanceAlarm"></a>

```typescript
public readonly configBurstCreditBalanceAlarm: EfsBurstCreditBalanceAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsBurstCreditBalanceAlarmConfig">EfsBurstCreditBalanceAlarmConfig</a>

The configuration for the BurstCreditBalance alarm.

---

##### `configPercentIOLimitAlarm`<sup>Optional</sup> <a name="configPercentIOLimitAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.configPercentIOLimitAlarm"></a>

```typescript
public readonly configPercentIOLimitAlarm: EfsPercentIOLimitAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig">EfsPercentIOLimitAlarmConfig</a>

The configuration for the PercentIOLimit alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: EfsRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsMetrics">EfsRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `fileSystem`<sup>Required</sup> <a name="fileSystem" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsProps.property.fileSystem"></a>

```typescript
public readonly fileSystem: FileSystem;
```

- *Type:* aws-cdk-lib.aws_efs.FileSystem

The EFS FileSystem to monitor.

---

### EfsPercentIOLimitAlarmConfig <a name="EfsPercentIOLimitAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig"></a>

Configuration for the PercentIOLimit alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.Initializer"></a>

```typescript
import { EfsPercentIOLimitAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const efsPercentIOLimitAlarmConfig: EfsPercentIOLimitAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | When the file system reaches its I/O limit, it may respond to read and write requests slower. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect how close the file system is to reach the I/O limit of the General Purpose performance mode. Consistent high I/O percentage can be an indicator of the file system cannot scale with respect to I/O requests enough and the file system can be a resource bottleneck for the applications that use the file system.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* fileSystemId + ' - PercentIOLimit'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsPercentIOLimitAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 100

When the file system reaches its I/O limit, it may respond to read and write requests slower.

Therefore, it is recommended that the metric is monitored to avoid impacting applications that
use the file system. The threshold can be set around 100%. However, this value can be adjusted
to a lower value based on file system characteristics.

---

### ElastiCacheAlarmBaseConfig <a name="ElastiCacheAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheAlarmBaseConfig.Initializer"></a>

```typescript
import { ElastiCacheAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheAlarmBaseConfig: ElastiCacheAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### ElastiCacheClusterAlarmProps <a name="ElastiCacheClusterAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterAlarmProps"></a>

The common properties for the ElastiCache CfnCacheCluster alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterAlarmProps.Initializer"></a>

```typescript
import { ElastiCacheClusterAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheClusterAlarmProps: ElastiCacheClusterAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterAlarmProps.property.cacheCluster">cacheCluster</a></code> | <code>aws-cdk-lib.aws_elasticache.CfnCacheCluster</code> | The ElastiCache CfnCacheCluster to monitor. |

---

##### `cacheCluster`<sup>Required</sup> <a name="cacheCluster" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterAlarmProps.property.cacheCluster"></a>

```typescript
public readonly cacheCluster: CfnCacheCluster;
```

- *Type:* aws-cdk-lib.aws_elasticache.CfnCacheCluster

The ElastiCache CfnCacheCluster to monitor.

---

### ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps <a name="ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps"></a>

The properties for the ElastiCacheClusterDatabaseMemoryUsagePercentageAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.Initializer"></a>

```typescript
import { ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps: ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.cacheCluster">cacheCluster</a></code> | <code>aws-cdk-lib.aws_elasticache.CfnCacheCluster</code> | The ElastiCache CfnCacheCluster to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | Depending on your application's memory requirements and the memory capacity of your ElastiCache cluster, you should set the threshold to the percentage that reflects the critical level of memory usage of the cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `cacheCluster`<sup>Required</sup> <a name="cacheCluster" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.cacheCluster"></a>

```typescript
public readonly cacheCluster: CfnCacheCluster;
```

- *Type:* aws-cdk-lib.aws_elasticache.CfnCacheCluster

The ElastiCache CfnCacheCluster to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Depending on your application's memory requirements and the memory capacity of your ElastiCache cluster, you should set the threshold to the percentage that reflects the critical level of memory usage of the cluster.

You can use historical memory usage data as reference for acceptable memory usage threshold.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high memory utilization of your cluster so that you can avoid failures when writing to your cluster. It is useful to know when you will need to scale up your cluster if your application does not expect to experience evictions.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* logicalId + ' - DatabaseMemoryUsagePercentage'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterDatabaseMemoryUsagePercentageAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### ElastiCacheClusterEngineCpuUtilizationAlarmProps <a name="ElastiCacheClusterEngineCpuUtilizationAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps"></a>

The properties for the ElastiCacheClusterEngineCpuUtilizationAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.Initializer"></a>

```typescript
import { ElastiCacheClusterEngineCpuUtilizationAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheClusterEngineCpuUtilizationAlarmProps: ElastiCacheClusterEngineCpuUtilizationAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.cacheCluster">cacheCluster</a></code> | <code>aws-cdk-lib.aws_elasticache.CfnCacheCluster</code> | The ElastiCache CfnCacheCluster to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold to a percentage that reflects the critical engine CPU utilization level for your application. |

---

##### `cacheCluster`<sup>Required</sup> <a name="cacheCluster" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.cacheCluster"></a>

```typescript
public readonly cacheCluster: CfnCacheCluster;
```

- *Type:* aws-cdk-lib.aws_elasticache.CfnCacheCluster

The ElastiCache CfnCacheCluster to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high CPU utilization of the Redis OSS engine thread. It is useful if you want to monitor the CPU usage of the database engine itself.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* logicalId + ' - EngineCPUUtilization'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterEngineCpuUtilizationAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 90

Set the threshold to a percentage that reflects the critical engine CPU utilization level for your application.

You can benchmark your cluster using your application and expected workload to correlate EngineCPUUtilization and
performance as a reference, and then set the threshold accordingly. In most cases, you can set the threshold to
about 90% of your available CPU.

---

### ElastiCacheClusterRecommendedAlarmsConfig <a name="ElastiCacheClusterRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an ElastiCache Service.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { ElastiCacheClusterRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheClusterRecommendedAlarmsConfig: ElastiCacheClusterRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.configDatabaseMemoryUsagePercentageAlarm">configDatabaseMemoryUsagePercentageAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig">ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig</a></code> | The configuration for the DatabaseMemoryUsagePercentage alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.configReplicationLagAlarm">configReplicationLagAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig">ElastiCacheReplicationLagAlarmConfig</a></code> | The configuration for the ReplicationLag alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.configEngineCpuUtilizationAlarm">configEngineCpuUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig">ElastiCacheEngineCpuUtilizationAlarmConfig</a></code> | The configuration for the EngineCpuUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheRecommendedAlarmsMetrics">ElastiCacheRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configDatabaseMemoryUsagePercentageAlarm`<sup>Required</sup> <a name="configDatabaseMemoryUsagePercentageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.configDatabaseMemoryUsagePercentageAlarm"></a>

```typescript
public readonly configDatabaseMemoryUsagePercentageAlarm: ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig">ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig</a>

The configuration for the DatabaseMemoryUsagePercentage alarm.

---

##### `configReplicationLagAlarm`<sup>Required</sup> <a name="configReplicationLagAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.configReplicationLagAlarm"></a>

```typescript
public readonly configReplicationLagAlarm: ElastiCacheReplicationLagAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig">ElastiCacheReplicationLagAlarmConfig</a>

The configuration for the ReplicationLag alarm.

---

##### `configEngineCpuUtilizationAlarm`<sup>Optional</sup> <a name="configEngineCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.configEngineCpuUtilizationAlarm"></a>

```typescript
public readonly configEngineCpuUtilizationAlarm: ElastiCacheEngineCpuUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig">ElastiCacheEngineCpuUtilizationAlarmConfig</a>

The configuration for the EngineCpuUtilization alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: ElastiCacheRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheRecommendedAlarmsMetrics">ElastiCacheRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### ElastiCacheClusterRecommendedAlarmsProps <a name="ElastiCacheClusterRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps"></a>

Properties for the ElastiCacheClusterRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.Initializer"></a>

```typescript
import { ElastiCacheClusterRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheClusterRecommendedAlarmsProps: ElastiCacheClusterRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.configDatabaseMemoryUsagePercentageAlarm">configDatabaseMemoryUsagePercentageAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig">ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig</a></code> | The configuration for the DatabaseMemoryUsagePercentage alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.configReplicationLagAlarm">configReplicationLagAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig">ElastiCacheReplicationLagAlarmConfig</a></code> | The configuration for the ReplicationLag alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.configEngineCpuUtilizationAlarm">configEngineCpuUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig">ElastiCacheEngineCpuUtilizationAlarmConfig</a></code> | The configuration for the EngineCpuUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheRecommendedAlarmsMetrics">ElastiCacheRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.cacheCluster">cacheCluster</a></code> | <code>aws-cdk-lib.aws_elasticache.CfnCacheCluster</code> | The ElastiCache CfnCacheCluster to monitor. |

---

##### `configDatabaseMemoryUsagePercentageAlarm`<sup>Required</sup> <a name="configDatabaseMemoryUsagePercentageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.configDatabaseMemoryUsagePercentageAlarm"></a>

```typescript
public readonly configDatabaseMemoryUsagePercentageAlarm: ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig">ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig</a>

The configuration for the DatabaseMemoryUsagePercentage alarm.

---

##### `configReplicationLagAlarm`<sup>Required</sup> <a name="configReplicationLagAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.configReplicationLagAlarm"></a>

```typescript
public readonly configReplicationLagAlarm: ElastiCacheReplicationLagAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig">ElastiCacheReplicationLagAlarmConfig</a>

The configuration for the ReplicationLag alarm.

---

##### `configEngineCpuUtilizationAlarm`<sup>Optional</sup> <a name="configEngineCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.configEngineCpuUtilizationAlarm"></a>

```typescript
public readonly configEngineCpuUtilizationAlarm: ElastiCacheEngineCpuUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig">ElastiCacheEngineCpuUtilizationAlarmConfig</a>

The configuration for the EngineCpuUtilization alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: ElastiCacheRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheRecommendedAlarmsMetrics">ElastiCacheRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `cacheCluster`<sup>Required</sup> <a name="cacheCluster" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsProps.property.cacheCluster"></a>

```typescript
public readonly cacheCluster: CfnCacheCluster;
```

- *Type:* aws-cdk-lib.aws_elasticache.CfnCacheCluster

The ElastiCache CfnCacheCluster to monitor.

---

### ElastiCacheClusterReplicationLagAlarmProps <a name="ElastiCacheClusterReplicationLagAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps"></a>

The properties for the ElastiCacheClusterReplicationLagAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.Initializer"></a>

```typescript
import { ElastiCacheClusterReplicationLagAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheClusterReplicationLagAlarmProps: ElastiCacheClusterReplicationLagAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.cacheCluster">cacheCluster</a></code> | <code>aws-cdk-lib.aws_elasticache.CfnCacheCluster</code> | The ElastiCache CfnCacheCluster to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold according to your application's requirements and the potential impact of replication lag. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `cacheCluster`<sup>Required</sup> <a name="cacheCluster" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.cacheCluster"></a>

```typescript
public readonly cacheCluster: CfnCacheCluster;
```

- *Type:* aws-cdk-lib.aws_elasticache.CfnCacheCluster

The ElastiCache CfnCacheCluster to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Set the threshold according to your application's requirements and the potential impact of replication lag.

You should
consider your application's expected write rates and network conditions for the acceptable replication lag.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect a delay between data updates on the primary node and their synchronization to replica node. It helps to ensure data consistency of a read replica cluster node.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* logicalId + ' - ReplicationLag'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterReplicationLagAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

### ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig <a name="ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig"></a>

Configuration for the DatabaseMemoryUsagePercentage alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.Initializer"></a>

```typescript
import { ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheDatabaseMemoryUsagePercentageAlarmConfig: ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | Depending on your application's memory requirements and the memory capacity of your ElastiCache cluster, you should set the threshold to the percentage that reflects the critical level of memory usage of the cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Depending on your application's memory requirements and the memory capacity of your ElastiCache cluster, you should set the threshold to the percentage that reflects the critical level of memory usage of the cluster.

You can use historical memory usage data as reference for acceptable memory usage threshold.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high memory utilization of your cluster so that you can avoid failures when writing to your cluster. It is useful to know when you will need to scale up your cluster if your application does not expect to experience evictions.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* logicalId + ' - DatabaseMemoryUsagePercentage'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### ElastiCacheEngineCpuUtilizationAlarmConfig <a name="ElastiCacheEngineCpuUtilizationAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig"></a>

Configuration for the EngineCpuUtilization alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.Initializer"></a>

```typescript
import { ElastiCacheEngineCpuUtilizationAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheEngineCpuUtilizationAlarmConfig: ElastiCacheEngineCpuUtilizationAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold to a percentage that reflects the critical engine CPU utilization level for your application. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high CPU utilization of the Redis OSS engine thread. It is useful if you want to monitor the CPU usage of the database engine itself.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* logicalId + ' - EngineCPUUtilization'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 90

Set the threshold to a percentage that reflects the critical engine CPU utilization level for your application.

You can benchmark your cluster using your application and expected workload to correlate EngineCPUUtilization and
performance as a reference, and then set the threshold accordingly. In most cases, you can set the threshold to
about 90% of your available CPU.

---

### ElastiCacheReplicationGroupAlarmProps <a name="ElastiCacheReplicationGroupAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupAlarmProps"></a>

The common properties for the ElastiCache CfnReplicationGroup alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupAlarmProps.Initializer"></a>

```typescript
import { ElastiCacheReplicationGroupAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheReplicationGroupAlarmProps: ElastiCacheReplicationGroupAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupAlarmProps.property.cacheReplicationGroup">cacheReplicationGroup</a></code> | <code>aws-cdk-lib.aws_elasticache.CfnReplicationGroup</code> | The ElastiCache CfnReplicationGroup to monitor. |

---

##### `cacheReplicationGroup`<sup>Required</sup> <a name="cacheReplicationGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupAlarmProps.property.cacheReplicationGroup"></a>

```typescript
public readonly cacheReplicationGroup: CfnReplicationGroup;
```

- *Type:* aws-cdk-lib.aws_elasticache.CfnReplicationGroup

The ElastiCache CfnReplicationGroup to monitor.

---

### ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps <a name="ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps"></a>

The properties for the ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.Initializer"></a>

```typescript
import { ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps: ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.cacheReplicationGroup">cacheReplicationGroup</a></code> | <code>aws-cdk-lib.aws_elasticache.CfnReplicationGroup</code> | The ElastiCache CfnReplicationGroup to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | Depending on your application's memory requirements and the memory capacity of your ElastiCache cluster, you should set the threshold to the percentage that reflects the critical level of memory usage of the cluster. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `cacheReplicationGroup`<sup>Required</sup> <a name="cacheReplicationGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.cacheReplicationGroup"></a>

```typescript
public readonly cacheReplicationGroup: CfnReplicationGroup;
```

- *Type:* aws-cdk-lib.aws_elasticache.CfnReplicationGroup

The ElastiCache CfnReplicationGroup to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Depending on your application's memory requirements and the memory capacity of your ElastiCache cluster, you should set the threshold to the percentage that reflects the critical level of memory usage of the cluster.

You can use historical memory usage data as reference for acceptable memory usage threshold.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high memory utilization of your cluster so that you can avoid failures when writing to your cluster. It is useful to know when you will need to scale up your cluster if your application does not expect to experience evictions.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* logicalId + ' - DatabaseMemoryUsagePercentage'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupDatabaseMemoryUsagePercentageAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps <a name="ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps"></a>

The properties for the ElastiCacheReplicationGroupEngineCpuUtilizationAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.Initializer"></a>

```typescript
import { ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheReplicationGroupEngineCpuUtilizationAlarmProps: ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.cacheReplicationGroup">cacheReplicationGroup</a></code> | <code>aws-cdk-lib.aws_elasticache.CfnReplicationGroup</code> | The ElastiCache CfnReplicationGroup to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold to a percentage that reflects the critical engine CPU utilization level for your application. |

---

##### `cacheReplicationGroup`<sup>Required</sup> <a name="cacheReplicationGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.cacheReplicationGroup"></a>

```typescript
public readonly cacheReplicationGroup: CfnReplicationGroup;
```

- *Type:* aws-cdk-lib.aws_elasticache.CfnReplicationGroup

The ElastiCache CfnReplicationGroup to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high CPU utilization of the Redis OSS engine thread. It is useful if you want to monitor the CPU usage of the database engine itself.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* logicalId + ' - EngineCPUUtilization'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupEngineCpuUtilizationAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 90

Set the threshold to a percentage that reflects the critical engine CPU utilization level for your application.

You can benchmark your cluster using your application and expected workload to correlate EngineCPUUtilization and
performance as a reference, and then set the threshold accordingly. In most cases, you can set the threshold to
about 90% of your available CPU.

---

### ElastiCacheReplicationGroupRecommendedAlarmsConfig <a name="ElastiCacheReplicationGroupRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an ElastiCache ReplicationGroup.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { ElastiCacheReplicationGroupRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheReplicationGroupRecommendedAlarmsConfig: ElastiCacheReplicationGroupRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.configDatabaseMemoryUsagePercentageAlarm">configDatabaseMemoryUsagePercentageAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig">ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig</a></code> | The configuration for the DatabaseMemoryUsagePercentage alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.configReplicationLagAlarm">configReplicationLagAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig">ElastiCacheReplicationLagAlarmConfig</a></code> | The configuration for the ReplicationLag alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.configEngineCpuUtilizationAlarm">configEngineCpuUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig">ElastiCacheEngineCpuUtilizationAlarmConfig</a></code> | The configuration for the EngineCPUUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheRecommendedAlarmsMetrics">ElastiCacheRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configDatabaseMemoryUsagePercentageAlarm`<sup>Required</sup> <a name="configDatabaseMemoryUsagePercentageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.configDatabaseMemoryUsagePercentageAlarm"></a>

```typescript
public readonly configDatabaseMemoryUsagePercentageAlarm: ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig">ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig</a>

The configuration for the DatabaseMemoryUsagePercentage alarm.

---

##### `configReplicationLagAlarm`<sup>Required</sup> <a name="configReplicationLagAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.configReplicationLagAlarm"></a>

```typescript
public readonly configReplicationLagAlarm: ElastiCacheReplicationLagAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig">ElastiCacheReplicationLagAlarmConfig</a>

The configuration for the ReplicationLag alarm.

---

##### `configEngineCpuUtilizationAlarm`<sup>Optional</sup> <a name="configEngineCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.configEngineCpuUtilizationAlarm"></a>

```typescript
public readonly configEngineCpuUtilizationAlarm: ElastiCacheEngineCpuUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig">ElastiCacheEngineCpuUtilizationAlarmConfig</a>

The configuration for the EngineCPUUtilization alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: ElastiCacheRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheRecommendedAlarmsMetrics">ElastiCacheRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### ElastiCacheReplicationGroupRecommendedAlarmsProps <a name="ElastiCacheReplicationGroupRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps"></a>

Properties for the ElastiCacheReplicationGroupRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.Initializer"></a>

```typescript
import { ElastiCacheReplicationGroupRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheReplicationGroupRecommendedAlarmsProps: ElastiCacheReplicationGroupRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.configDatabaseMemoryUsagePercentageAlarm">configDatabaseMemoryUsagePercentageAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig">ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig</a></code> | The configuration for the DatabaseMemoryUsagePercentage alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.configReplicationLagAlarm">configReplicationLagAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig">ElastiCacheReplicationLagAlarmConfig</a></code> | The configuration for the ReplicationLag alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.configEngineCpuUtilizationAlarm">configEngineCpuUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig">ElastiCacheEngineCpuUtilizationAlarmConfig</a></code> | The configuration for the EngineCPUUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheRecommendedAlarmsMetrics">ElastiCacheRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.cacheReplicationGroup">cacheReplicationGroup</a></code> | <code>aws-cdk-lib.aws_elasticache.CfnReplicationGroup</code> | The ElastiCache CfnReplicationGroup to monitor. |

---

##### `configDatabaseMemoryUsagePercentageAlarm`<sup>Required</sup> <a name="configDatabaseMemoryUsagePercentageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.configDatabaseMemoryUsagePercentageAlarm"></a>

```typescript
public readonly configDatabaseMemoryUsagePercentageAlarm: ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig">ElastiCacheDatabaseMemoryUsagePercentageAlarmConfig</a>

The configuration for the DatabaseMemoryUsagePercentage alarm.

---

##### `configReplicationLagAlarm`<sup>Required</sup> <a name="configReplicationLagAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.configReplicationLagAlarm"></a>

```typescript
public readonly configReplicationLagAlarm: ElastiCacheReplicationLagAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig">ElastiCacheReplicationLagAlarmConfig</a>

The configuration for the ReplicationLag alarm.

---

##### `configEngineCpuUtilizationAlarm`<sup>Optional</sup> <a name="configEngineCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.configEngineCpuUtilizationAlarm"></a>

```typescript
public readonly configEngineCpuUtilizationAlarm: ElastiCacheEngineCpuUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheEngineCpuUtilizationAlarmConfig">ElastiCacheEngineCpuUtilizationAlarmConfig</a>

The configuration for the EngineCPUUtilization alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: ElastiCacheRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheRecommendedAlarmsMetrics">ElastiCacheRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `cacheReplicationGroup`<sup>Required</sup> <a name="cacheReplicationGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsProps.property.cacheReplicationGroup"></a>

```typescript
public readonly cacheReplicationGroup: CfnReplicationGroup;
```

- *Type:* aws-cdk-lib.aws_elasticache.CfnReplicationGroup

The ElastiCache CfnReplicationGroup to monitor.

---

### ElastiCacheReplicationGroupReplicationLagAlarmProps <a name="ElastiCacheReplicationGroupReplicationLagAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps"></a>

The properties for the ElastiCacheReplicationGroupReplicationLagAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.Initializer"></a>

```typescript
import { ElastiCacheReplicationGroupReplicationLagAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheReplicationGroupReplicationLagAlarmProps: ElastiCacheReplicationGroupReplicationLagAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.cacheReplicationGroup">cacheReplicationGroup</a></code> | <code>aws-cdk-lib.aws_elasticache.CfnReplicationGroup</code> | The ElastiCache CfnReplicationGroup to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold according to your application's requirements and the potential impact of replication lag. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `cacheReplicationGroup`<sup>Required</sup> <a name="cacheReplicationGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.cacheReplicationGroup"></a>

```typescript
public readonly cacheReplicationGroup: CfnReplicationGroup;
```

- *Type:* aws-cdk-lib.aws_elasticache.CfnReplicationGroup

The ElastiCache CfnReplicationGroup to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Set the threshold according to your application's requirements and the potential impact of replication lag.

You should
consider your application's expected write rates and network conditions for the acceptable replication lag.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect a delay between data updates on the primary node and their synchronization to replica node. It helps to ensure data consistency of a read replica cluster node.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* logicalId + ' - ReplicationLag'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupReplicationLagAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

### ElastiCacheReplicationLagAlarmConfig <a name="ElastiCacheReplicationLagAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig"></a>

Configuration for the ReplicationLag alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.Initializer"></a>

```typescript
import { ElastiCacheReplicationLagAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const elastiCacheReplicationLagAlarmConfig: ElastiCacheReplicationLagAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold according to your application's requirements and the potential impact of replication lag. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Set the threshold according to your application's requirements and the potential impact of replication lag.

You should
consider your application's expected write rates and network conditions for the acceptable replication lag.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect a delay between data updates on the primary node and their synchronization to replica node. It helps to ensure data consistency of a read replica cluster node.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* logicalId + ' - ReplicationLag'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationLagAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

### LambdaAlarmBaseConfig <a name="LambdaAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaAlarmBaseConfig"></a>

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaAlarmBaseConfig.Initializer"></a>

```typescript
import { LambdaAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const lambdaAlarmBaseConfig: LambdaAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### LambdaConcurrentExecutionsAlarmConfig <a name="LambdaConcurrentExecutionsAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig"></a>

Configuration for the ConcurrentExecutions alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.Initializer"></a>

```typescript
import { LambdaConcurrentExecutionsAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const lambdaConcurrentExecutionsAlarmConfig: LambdaConcurrentExecutionsAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statictis is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to monitor if the concurrency of the function is approaching the Region-level concurrency limit of your account. A function starts to be throttled if it reaches the concurrency limit.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* lambdaFunction.functionName + ' - ConcurrentExecutions'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 10

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 10

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 900

The value against which the specified statictis is compared.

Set the threshold to about 90% of the concurrency quota set
for the account in the Region. By default, your account has
a concurrency quota of 1,000 across all functions in a Region.
However, you can check the quota of your account, as it can
be increased by contacting AWS support.

---

### LambdaConcurrentExecutionsAlarmProps <a name="LambdaConcurrentExecutionsAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps"></a>

The properties for the LambdaConcurrentExecutionsAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.Initializer"></a>

```typescript
import { LambdaConcurrentExecutionsAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const lambdaConcurrentExecutionsAlarmProps: LambdaConcurrentExecutionsAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statictis is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.lambdaFunction">lambdaFunction</a></code> | <code>aws-cdk-lib.aws_lambda.IFunction</code> | The Lambda function to monitor. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to monitor if the concurrency of the function is approaching the Region-level concurrency limit of your account. A function starts to be throttled if it reaches the concurrency limit.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* lambdaFunction.functionName + ' - ConcurrentExecutions'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 10

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 10

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 900

The value against which the specified statictis is compared.

Set the threshold to about 90% of the concurrency quota set
for the account in the Region. By default, your account has
a concurrency quota of 1,000 across all functions in a Region.
However, you can check the quota of your account, as it can
be increased by contacting AWS support.

---

##### `lambdaFunction`<sup>Required</sup> <a name="lambdaFunction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmProps.property.lambdaFunction"></a>

```typescript
public readonly lambdaFunction: IFunction;
```

- *Type:* aws-cdk-lib.aws_lambda.IFunction

The Lambda function to monitor.

---

### LambdaDurationAlarmConfig <a name="LambdaDurationAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig"></a>

Configuration for the Duration alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.Initializer"></a>

```typescript
import { LambdaDurationAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const lambdaDurationAlarmConfig: LambdaDurationAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statictis is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statictis is compared.

The threshold for the duration depends on your application
and workloads and your performance requirements. For
high-performance requirements, set the threshold to a
shorter time to see if the function is meeting expectations.
You can also analyze historical data for duration metrics
to see the if the time taken matches the performance
expectation of the function, and then set the threshold to
a longer time than the historical average. Make sure to
set the threshold lower than the configured function
timeout.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm detects long duration times for processing an event by a Lambda function. Long durations might be because of changes in function code making the function take longer to execute, or the function's dependencies taking longer.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* lambdaFunction.functionName + ' - Duration'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

### LambdaDurationAlarmProps <a name="LambdaDurationAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps"></a>

The properties for the LambdaDurationAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.Initializer"></a>

```typescript
import { LambdaDurationAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const lambdaDurationAlarmProps: LambdaDurationAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statictis is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.lambdaFunction">lambdaFunction</a></code> | <code>aws-cdk-lib.aws_lambda.IFunction</code> | The Lambda function to monitor. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statictis is compared.

The threshold for the duration depends on your application
and workloads and your performance requirements. For
high-performance requirements, set the threshold to a
shorter time to see if the function is meeting expectations.
You can also analyze historical data for duration metrics
to see the if the time taken matches the performance
expectation of the function, and then set the threshold to
a longer time than the historical average. Make sure to
set the threshold lower than the configured function
timeout.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm detects long duration times for processing an event by a Lambda function. Long durations might be because of changes in function code making the function take longer to execute, or the function's dependencies taking longer.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* lambdaFunction.functionName + ' - Duration'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `lambdaFunction`<sup>Required</sup> <a name="lambdaFunction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmProps.property.lambdaFunction"></a>

```typescript
public readonly lambdaFunction: IFunction;
```

- *Type:* aws-cdk-lib.aws_lambda.IFunction

The Lambda function to monitor.

---

### LambdaErrorsAlarmConfig <a name="LambdaErrorsAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig"></a>

Configuration for the Errors alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.Initializer"></a>

```typescript
import { LambdaErrorsAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const lambdaErrorsAlarmConfig: LambdaErrorsAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistics is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistics is compared.

Set the threshold to a number greater than zero. The exact
value can depend on the tolerance for errors in your
application. Understand the criticality of the invocations
that the function is handling. For some applications, any
error might be unacceptable, while other applications might
allow for a certain margin of error.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm detects high error counts. Errors includes the exceptions thrown by the code as well as exceptions thrown by the Lambda runtime. You can check the logs related to the function to diagnose the issue.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* lambdaFunction.functionName + ' - Errors'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

### LambdaErrorsAlarmProps <a name="LambdaErrorsAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps"></a>

The properties for the LambdaErrorsAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.Initializer"></a>

```typescript
import { LambdaErrorsAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const lambdaErrorsAlarmProps: LambdaErrorsAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistics is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.lambdaFunction">lambdaFunction</a></code> | <code>aws-cdk-lib.aws_lambda.IFunction</code> | The Lambda function to monitor. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistics is compared.

Set the threshold to a number greater than zero. The exact
value can depend on the tolerance for errors in your
application. Understand the criticality of the invocations
that the function is handling. For some applications, any
error might be unacceptable, while other applications might
allow for a certain margin of error.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm detects high error counts. Errors includes the exceptions thrown by the code as well as exceptions thrown by the Lambda runtime. You can check the logs related to the function to diagnose the issue.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* lambdaFunction.functionName + ' - Errors'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `lambdaFunction`<sup>Required</sup> <a name="lambdaFunction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmProps.property.lambdaFunction"></a>

```typescript
public readonly lambdaFunction: IFunction;
```

- *Type:* aws-cdk-lib.aws_lambda.IFunction

The Lambda function to monitor.

---

### LambdaRecommendedAlarmsConfig <a name="LambdaRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig"></a>

Configuration for Lambda recommended alarms.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { LambdaRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const lambdaRecommendedAlarmsConfig: LambdaRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.configDurationAlarm">configDurationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig">LambdaDurationAlarmConfig</a></code> | The configuration for the Duration alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.configErrorsAlarm">configErrorsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig">LambdaErrorsAlarmConfig</a></code> | The configuration for the Errors alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.configThrottlesAlarm">configThrottlesAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig">LambdaThrottlesAlarmConfig</a></code> | The configuration for the Throttles alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.configConcurrentExecutionsAlarm">configConcurrentExecutionsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig">LambdaConcurrentExecutionsAlarmConfig</a></code> | The configuration for the ConcurrentExecutions alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsMetrics">LambdaRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configDurationAlarm`<sup>Required</sup> <a name="configDurationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.configDurationAlarm"></a>

```typescript
public readonly configDurationAlarm: LambdaDurationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig">LambdaDurationAlarmConfig</a>

The configuration for the Duration alarm.

---

##### `configErrorsAlarm`<sup>Required</sup> <a name="configErrorsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.configErrorsAlarm"></a>

```typescript
public readonly configErrorsAlarm: LambdaErrorsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig">LambdaErrorsAlarmConfig</a>

The configuration for the Errors alarm.

---

##### `configThrottlesAlarm`<sup>Required</sup> <a name="configThrottlesAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.configThrottlesAlarm"></a>

```typescript
public readonly configThrottlesAlarm: LambdaThrottlesAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig">LambdaThrottlesAlarmConfig</a>

The configuration for the Throttles alarm.

---

##### `configConcurrentExecutionsAlarm`<sup>Optional</sup> <a name="configConcurrentExecutionsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.configConcurrentExecutionsAlarm"></a>

```typescript
public readonly configConcurrentExecutionsAlarm: LambdaConcurrentExecutionsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig">LambdaConcurrentExecutionsAlarmConfig</a>

The configuration for the ConcurrentExecutions alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: LambdaRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsMetrics">LambdaRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### LambdaRecommendedAlarmsProps <a name="LambdaRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps"></a>

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.Initializer"></a>

```typescript
import { LambdaRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const lambdaRecommendedAlarmsProps: LambdaRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.configDurationAlarm">configDurationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig">LambdaDurationAlarmConfig</a></code> | The configuration for the Duration alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.configErrorsAlarm">configErrorsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig">LambdaErrorsAlarmConfig</a></code> | The configuration for the Errors alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.configThrottlesAlarm">configThrottlesAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig">LambdaThrottlesAlarmConfig</a></code> | The configuration for the Throttles alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.configConcurrentExecutionsAlarm">configConcurrentExecutionsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig">LambdaConcurrentExecutionsAlarmConfig</a></code> | The configuration for the ConcurrentExecutions alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsMetrics">LambdaRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.lambdaFunction">lambdaFunction</a></code> | <code>aws-cdk-lib.aws_lambda.IFunction</code> | The lambda function to apply the recommended alarms. |

---

##### `configDurationAlarm`<sup>Required</sup> <a name="configDurationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.configDurationAlarm"></a>

```typescript
public readonly configDurationAlarm: LambdaDurationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaDurationAlarmConfig">LambdaDurationAlarmConfig</a>

The configuration for the Duration alarm.

---

##### `configErrorsAlarm`<sup>Required</sup> <a name="configErrorsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.configErrorsAlarm"></a>

```typescript
public readonly configErrorsAlarm: LambdaErrorsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaErrorsAlarmConfig">LambdaErrorsAlarmConfig</a>

The configuration for the Errors alarm.

---

##### `configThrottlesAlarm`<sup>Required</sup> <a name="configThrottlesAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.configThrottlesAlarm"></a>

```typescript
public readonly configThrottlesAlarm: LambdaThrottlesAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig">LambdaThrottlesAlarmConfig</a>

The configuration for the Throttles alarm.

---

##### `configConcurrentExecutionsAlarm`<sup>Optional</sup> <a name="configConcurrentExecutionsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.configConcurrentExecutionsAlarm"></a>

```typescript
public readonly configConcurrentExecutionsAlarm: LambdaConcurrentExecutionsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaConcurrentExecutionsAlarmConfig">LambdaConcurrentExecutionsAlarmConfig</a>

The configuration for the ConcurrentExecutions alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: LambdaRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsMetrics">LambdaRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `lambdaFunction`<sup>Required</sup> <a name="lambdaFunction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsProps.property.lambdaFunction"></a>

```typescript
public readonly lambdaFunction: IFunction;
```

- *Type:* aws-cdk-lib.aws_lambda.IFunction

The lambda function to apply the recommended alarms.

---

### LambdaThrottlesAlarmConfig <a name="LambdaThrottlesAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig"></a>

Configuration for the Throttles alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.Initializer"></a>

```typescript
import { LambdaThrottlesAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const lambdaThrottlesAlarmConfig: LambdaThrottlesAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statictis is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statictis is compared.

Set the threshold to a number greater than zero. The exact value
of the threshold can depend on the tolerance of the application.
Set the threshold according to its usage and scaling requirements
of the function.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm detects a high number of throttled invocation requests. Throttling occurs when there is no concurrency is available for scale up. There are several approaches to resolve this issue. 1) Request a concurrency increase from AWS Support in this Region. 2) Identify performance issues in the function to improve the speed of processing and therefore improve throughput. 3) Increase the batch size of the function, so that more messages are processed by each function invocation.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* lambdaFunction.functionName + ' - Throttles'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### LambdaThrottlesAlarmProps <a name="LambdaThrottlesAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps"></a>

The properties for the LambdaThrottlesAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.Initializer"></a>

```typescript
import { LambdaThrottlesAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const lambdaThrottlesAlarmProps: LambdaThrottlesAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statictis is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.lambdaFunction">lambdaFunction</a></code> | <code>aws-cdk-lib.aws_lambda.IFunction</code> | The Lambda function to monitor. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statictis is compared.

Set the threshold to a number greater than zero. The exact value
of the threshold can depend on the tolerance of the application.
Set the threshold according to its usage and scaling requirements
of the function.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm detects a high number of throttled invocation requests. Throttling occurs when there is no concurrency is available for scale up. There are several approaches to resolve this issue. 1) Request a concurrency increase from AWS Support in this Region. 2) Identify performance issues in the function to improve the speed of processing and therefore improve throughput. 3) Increase the batch size of the function, so that more messages are processed by each function invocation.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* lambdaFunction.functionName + ' - Throttles'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `lambdaFunction`<sup>Required</sup> <a name="lambdaFunction" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaThrottlesAlarmProps.property.lambdaFunction"></a>

```typescript
public readonly lambdaFunction: IFunction;
```

- *Type:* aws-cdk-lib.aws_lambda.IFunction

The Lambda function to monitor.

---

### NetworkLoadBalancerAlarmBaseConfig <a name="NetworkLoadBalancerAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmBaseConfig.Initializer"></a>

```typescript
import { NetworkLoadBalancerAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkLoadBalancerAlarmBaseConfig: NetworkLoadBalancerAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### NetworkLoadBalancerAlarmProps <a name="NetworkLoadBalancerAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmProps"></a>

The common properties for the NetworkLoadBalancer alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmProps.Initializer"></a>

```typescript
import { NetworkLoadBalancerAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkLoadBalancerAlarmProps: NetworkLoadBalancerAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmProps.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.NetworkLoadBalancer</code> | The NetworkLoadBalancer to monitor. |

---

##### `loadBalancer`<sup>Required</sup> <a name="loadBalancer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerAlarmProps.property.loadBalancer"></a>

```typescript
public readonly loadBalancer: NetworkLoadBalancer;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.NetworkLoadBalancer

The NetworkLoadBalancer to monitor.

---

### NetworkLoadBalancerRecommendedAlarmsConfig <a name="NetworkLoadBalancerRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for a NetworkLoadBalancer.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { NetworkLoadBalancerRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkLoadBalancerRecommendedAlarmsConfig: NetworkLoadBalancerRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.configTcpElbResetCountAlarm">configTcpElbResetCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig">NetworkLoadBalancerTcpElbResetCountAlarmConfig</a></code> | The configuration for the TcpElbResetCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.configTcpTargetResetCountAlarm">configTcpTargetResetCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig">NetworkLoadBalancerTcpTargetResetCountAlarmConfig</a></code> | The configuration for the TcpTargetResetCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsMetrics">NetworkLoadBalancerRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configTcpElbResetCountAlarm`<sup>Optional</sup> <a name="configTcpElbResetCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.configTcpElbResetCountAlarm"></a>

```typescript
public readonly configTcpElbResetCountAlarm: NetworkLoadBalancerTcpElbResetCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig">NetworkLoadBalancerTcpElbResetCountAlarmConfig</a>

The configuration for the TcpElbResetCount alarm.

---

##### `configTcpTargetResetCountAlarm`<sup>Optional</sup> <a name="configTcpTargetResetCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.configTcpTargetResetCountAlarm"></a>

```typescript
public readonly configTcpTargetResetCountAlarm: NetworkLoadBalancerTcpTargetResetCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig">NetworkLoadBalancerTcpTargetResetCountAlarmConfig</a>

The configuration for the TcpTargetResetCount alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: NetworkLoadBalancerRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsMetrics">NetworkLoadBalancerRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### NetworkLoadBalancerRecommendedAlarmsProps <a name="NetworkLoadBalancerRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps"></a>

Properties for the NetworkLoadBalancerRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.Initializer"></a>

```typescript
import { NetworkLoadBalancerRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkLoadBalancerRecommendedAlarmsProps: NetworkLoadBalancerRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.configTcpElbResetCountAlarm">configTcpElbResetCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig">NetworkLoadBalancerTcpElbResetCountAlarmConfig</a></code> | The configuration for the TcpElbResetCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.configTcpTargetResetCountAlarm">configTcpTargetResetCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig">NetworkLoadBalancerTcpTargetResetCountAlarmConfig</a></code> | The configuration for the TcpTargetResetCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsMetrics">NetworkLoadBalancerRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.NetworkLoadBalancer</code> | The NetworkLoadBalancer to monitor. |

---

##### `configTcpElbResetCountAlarm`<sup>Optional</sup> <a name="configTcpElbResetCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.configTcpElbResetCountAlarm"></a>

```typescript
public readonly configTcpElbResetCountAlarm: NetworkLoadBalancerTcpElbResetCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig">NetworkLoadBalancerTcpElbResetCountAlarmConfig</a>

The configuration for the TcpElbResetCount alarm.

---

##### `configTcpTargetResetCountAlarm`<sup>Optional</sup> <a name="configTcpTargetResetCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.configTcpTargetResetCountAlarm"></a>

```typescript
public readonly configTcpTargetResetCountAlarm: NetworkLoadBalancerTcpTargetResetCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig">NetworkLoadBalancerTcpTargetResetCountAlarmConfig</a>

The configuration for the TcpTargetResetCount alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: NetworkLoadBalancerRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsMetrics">NetworkLoadBalancerRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `loadBalancer`<sup>Required</sup> <a name="loadBalancer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsProps.property.loadBalancer"></a>

```typescript
public readonly loadBalancer: NetworkLoadBalancer;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.NetworkLoadBalancer

The NetworkLoadBalancer to monitor.

---

### NetworkLoadBalancerTcpElbResetCountAlarmConfig <a name="NetworkLoadBalancerTcpElbResetCountAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig"></a>

Configuration for the TcpElbResetCount alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.Initializer"></a>

```typescript
import { NetworkLoadBalancerTcpElbResetCountAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkLoadBalancerTcpElbResetCountAlarmConfig: NetworkLoadBalancerTcpElbResetCountAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the load balancer is sending TCP reset packets. A high number of resets can indicate connectivity issues between the load balancer and clients.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* loadBalancerName + ' - TcpElbResetCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

You should set this threshold based on the acceptable number of TCP resets from the load balancer.

---

### NetworkLoadBalancerTcpElbResetCountAlarmProps <a name="NetworkLoadBalancerTcpElbResetCountAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps"></a>

The properties for the NetworkLoadBalancerTcpElbResetCountAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.Initializer"></a>

```typescript
import { NetworkLoadBalancerTcpElbResetCountAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkLoadBalancerTcpElbResetCountAlarmProps: NetworkLoadBalancerTcpElbResetCountAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.NetworkLoadBalancer</code> | The NetworkLoadBalancer to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `loadBalancer`<sup>Required</sup> <a name="loadBalancer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.loadBalancer"></a>

```typescript
public readonly loadBalancer: NetworkLoadBalancer;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.NetworkLoadBalancer

The NetworkLoadBalancer to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the load balancer is sending TCP reset packets. A high number of resets can indicate connectivity issues between the load balancer and clients.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* loadBalancerName + ' - TcpElbResetCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpElbResetCountAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

You should set this threshold based on the acceptable number of TCP resets from the load balancer.

---

### NetworkLoadBalancerTcpTargetResetCountAlarmConfig <a name="NetworkLoadBalancerTcpTargetResetCountAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig"></a>

Configuration for the TcpTargetResetCount alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.Initializer"></a>

```typescript
import { NetworkLoadBalancerTcpTargetResetCountAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkLoadBalancerTcpTargetResetCountAlarmConfig: NetworkLoadBalancerTcpTargetResetCountAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the targets are sending TCP reset packets. A high number of resets can indicate connectivity issues between the load balancer and targets.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* loadBalancerName + ' - TcpTargetResetCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

You should set this threshold based on the acceptable number of TCP resets from targets.

---

### NetworkLoadBalancerTcpTargetResetCountAlarmProps <a name="NetworkLoadBalancerTcpTargetResetCountAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps"></a>

The properties for the NetworkLoadBalancerTcpTargetResetCountAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.Initializer"></a>

```typescript
import { NetworkLoadBalancerTcpTargetResetCountAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkLoadBalancerTcpTargetResetCountAlarmProps: NetworkLoadBalancerTcpTargetResetCountAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.NetworkLoadBalancer</code> | The NetworkLoadBalancer to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `loadBalancer`<sup>Required</sup> <a name="loadBalancer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.loadBalancer"></a>

```typescript
public readonly loadBalancer: NetworkLoadBalancer;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.NetworkLoadBalancer

The NetworkLoadBalancer to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the targets are sending TCP reset packets. A high number of resets can indicate connectivity issues between the load balancer and targets.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* loadBalancerName + ' - TcpTargetResetCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerTcpTargetResetCountAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

You should set this threshold based on the acceptable number of TCP resets from targets.

---

### NetworkTargetGroupAlarmBaseConfig <a name="NetworkTargetGroupAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmBaseConfig.Initializer"></a>

```typescript
import { NetworkTargetGroupAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkTargetGroupAlarmBaseConfig: NetworkTargetGroupAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### NetworkTargetGroupAlarmProps <a name="NetworkTargetGroupAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmProps"></a>

The common properties for the NetworkTargetGroup alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmProps.Initializer"></a>

```typescript
import { NetworkTargetGroupAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkTargetGroupAlarmProps: NetworkTargetGroupAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmProps.property.targetGroup">targetGroup</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.NetworkTargetGroup</code> | The NetworkTargetGroup to monitor. |

---

##### `targetGroup`<sup>Required</sup> <a name="targetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupAlarmProps.property.targetGroup"></a>

```typescript
public readonly targetGroup: NetworkTargetGroup;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.NetworkTargetGroup

The NetworkTargetGroup to monitor.

---

### NetworkTargetGroupHealthyHostCountAlarmConfig <a name="NetworkTargetGroupHealthyHostCountAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig"></a>

Configuration for the HealthyHostCount alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.Initializer"></a>

```typescript
import { NetworkTargetGroupHealthyHostCountAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkTargetGroupHealthyHostCountAlarmConfig: NetworkTargetGroupHealthyHostCountAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the number of healthy hosts in the target group falls below the threshold. A low number of healthy hosts can indicate service availability issues.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* targetGroupName + ' - HealthyHostCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 1

The value against which the specified statistic is compared.

You should set this threshold based on the minimum number of healthy hosts
required for your application to function properly.

---

### NetworkTargetGroupHealthyHostCountAlarmProps <a name="NetworkTargetGroupHealthyHostCountAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps"></a>

The properties for the NetworkTargetGroupHealthyHostCountAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.Initializer"></a>

```typescript
import { NetworkTargetGroupHealthyHostCountAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkTargetGroupHealthyHostCountAlarmProps: NetworkTargetGroupHealthyHostCountAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.targetGroup">targetGroup</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.NetworkTargetGroup</code> | The NetworkTargetGroup to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `targetGroup`<sup>Required</sup> <a name="targetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.targetGroup"></a>

```typescript
public readonly targetGroup: NetworkTargetGroup;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.NetworkTargetGroup

The NetworkTargetGroup to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the number of healthy hosts in the target group falls below the threshold. A low number of healthy hosts can indicate service availability issues.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* targetGroupName + ' - HealthyHostCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 1

The value against which the specified statistic is compared.

You should set this threshold based on the minimum number of healthy hosts
required for your application to function properly.

---

### NetworkTargetGroupRecommendedAlarmsConfig <a name="NetworkTargetGroupRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for a NetworkTargetGroup.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { NetworkTargetGroupRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkTargetGroupRecommendedAlarmsConfig: NetworkTargetGroupRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.configHealthyHostCountAlarm">configHealthyHostCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig">NetworkTargetGroupHealthyHostCountAlarmConfig</a></code> | The configuration for the HealthyHostCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.configUnHealthyHostCountAlarm">configUnHealthyHostCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig">NetworkTargetGroupUnHealthyHostCountAlarmConfig</a></code> | The configuration for the UnHealthyHostCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsMetrics">NetworkTargetGroupRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configHealthyHostCountAlarm`<sup>Optional</sup> <a name="configHealthyHostCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.configHealthyHostCountAlarm"></a>

```typescript
public readonly configHealthyHostCountAlarm: NetworkTargetGroupHealthyHostCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig">NetworkTargetGroupHealthyHostCountAlarmConfig</a>

The configuration for the HealthyHostCount alarm.

---

##### `configUnHealthyHostCountAlarm`<sup>Optional</sup> <a name="configUnHealthyHostCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.configUnHealthyHostCountAlarm"></a>

```typescript
public readonly configUnHealthyHostCountAlarm: NetworkTargetGroupUnHealthyHostCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig">NetworkTargetGroupUnHealthyHostCountAlarmConfig</a>

The configuration for the UnHealthyHostCount alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: NetworkTargetGroupRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsMetrics">NetworkTargetGroupRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### NetworkTargetGroupRecommendedAlarmsProps <a name="NetworkTargetGroupRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps"></a>

Properties for the NetworkTargetGroupRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.Initializer"></a>

```typescript
import { NetworkTargetGroupRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkTargetGroupRecommendedAlarmsProps: NetworkTargetGroupRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.configHealthyHostCountAlarm">configHealthyHostCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig">NetworkTargetGroupHealthyHostCountAlarmConfig</a></code> | The configuration for the HealthyHostCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.configUnHealthyHostCountAlarm">configUnHealthyHostCountAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig">NetworkTargetGroupUnHealthyHostCountAlarmConfig</a></code> | The configuration for the UnHealthyHostCount alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsMetrics">NetworkTargetGroupRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.targetGroup">targetGroup</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.NetworkTargetGroup</code> | The NetworkTargetGroup to monitor. |

---

##### `configHealthyHostCountAlarm`<sup>Optional</sup> <a name="configHealthyHostCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.configHealthyHostCountAlarm"></a>

```typescript
public readonly configHealthyHostCountAlarm: NetworkTargetGroupHealthyHostCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupHealthyHostCountAlarmConfig">NetworkTargetGroupHealthyHostCountAlarmConfig</a>

The configuration for the HealthyHostCount alarm.

---

##### `configUnHealthyHostCountAlarm`<sup>Optional</sup> <a name="configUnHealthyHostCountAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.configUnHealthyHostCountAlarm"></a>

```typescript
public readonly configUnHealthyHostCountAlarm: NetworkTargetGroupUnHealthyHostCountAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig">NetworkTargetGroupUnHealthyHostCountAlarmConfig</a>

The configuration for the UnHealthyHostCount alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: NetworkTargetGroupRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsMetrics">NetworkTargetGroupRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `targetGroup`<sup>Required</sup> <a name="targetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsProps.property.targetGroup"></a>

```typescript
public readonly targetGroup: NetworkTargetGroup;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.NetworkTargetGroup

The NetworkTargetGroup to monitor.

---

### NetworkTargetGroupUnHealthyHostCountAlarmConfig <a name="NetworkTargetGroupUnHealthyHostCountAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig"></a>

Configuration for the UnHealthyHostCount alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.Initializer"></a>

```typescript
import { NetworkTargetGroupUnHealthyHostCountAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkTargetGroupUnHealthyHostCountAlarmConfig: NetworkTargetGroupUnHealthyHostCountAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the number of unhealthy hosts in the target group exceeds the threshold. A high number of unhealthy hosts can indicate service health issues.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* targetGroupName + ' - UnHealthyHostCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

You should set this threshold based on the maximum number of unhealthy hosts
that your application can tolerate before service is impacted.

---

### NetworkTargetGroupUnHealthyHostCountAlarmProps <a name="NetworkTargetGroupUnHealthyHostCountAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps"></a>

The properties for the NetworkTargetGroupUnHealthyHostCountAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.Initializer"></a>

```typescript
import { NetworkTargetGroupUnHealthyHostCountAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const networkTargetGroupUnHealthyHostCountAlarmProps: NetworkTargetGroupUnHealthyHostCountAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.targetGroup">targetGroup</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.NetworkTargetGroup</code> | The NetworkTargetGroup to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `targetGroup`<sup>Required</sup> <a name="targetGroup" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.targetGroup"></a>

```typescript
public readonly targetGroup: NetworkTargetGroup;
```

- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.NetworkTargetGroup

The NetworkTargetGroup to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect when the number of unhealthy hosts in the target group exceeds the threshold. A high number of unhealthy hosts can indicate service health issues.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* targetGroupName + ' - UnHealthyHostCount'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupUnHealthyHostCountAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

You should set this threshold based on the maximum number of unhealthy hosts
that your application can tolerate before service is impacted.

---

### PrivateLinkEndpointsAlarmBaseConfig <a name="PrivateLinkEndpointsAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsAlarmBaseConfig.Initializer"></a>

```typescript
import { PrivateLinkEndpointsAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const privateLinkEndpointsAlarmBaseConfig: PrivateLinkEndpointsAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps <a name="PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps"></a>

The common properties for the PrivateLink InterfaceVpcEndpoint alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps.Initializer"></a>

```typescript
import { PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const privateLinkEndpointsInterfaceVpcEndpointAlarmProps: PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps.property.endpoint">endpoint</a></code> | <code>aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint</code> | The PrivateLink InterfaceVpcEndpoint to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps.property.endpointType">endpointType</a></code> | <code>string</code> | The type of the PrivateLink InterfaceVpcEndpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps.property.serviceName">serviceName</a></code> | <code>string</code> | The service name of the PrivateLink InterfaceVpcEndpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps.property.subnetId">subnetId</a></code> | <code>string</code> | The subnet ID of the PrivateLink InterfaceVpcEndpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps.property.vpcId">vpcId</a></code> | <code>string</code> | The VPC ID of the PrivateLink InterfaceVpcEndpoint. |

---

##### `endpoint`<sup>Required</sup> <a name="endpoint" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps.property.endpoint"></a>

```typescript
public readonly endpoint: InterfaceVpcEndpoint;
```

- *Type:* aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint

The PrivateLink InterfaceVpcEndpoint to monitor.

---

##### `endpointType`<sup>Required</sup> <a name="endpointType" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps.property.endpointType"></a>

```typescript
public readonly endpointType: string;
```

- *Type:* string

The type of the PrivateLink InterfaceVpcEndpoint.

---

##### `serviceName`<sup>Required</sup> <a name="serviceName" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps.property.serviceName"></a>

```typescript
public readonly serviceName: string;
```

- *Type:* string

The service name of the PrivateLink InterfaceVpcEndpoint.

---

##### `subnetId`<sup>Required</sup> <a name="subnetId" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps.property.subnetId"></a>

```typescript
public readonly subnetId: string;
```

- *Type:* string

The subnet ID of the PrivateLink InterfaceVpcEndpoint.

---

##### `vpcId`<sup>Required</sup> <a name="vpcId" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointAlarmProps.property.vpcId"></a>

```typescript
public readonly vpcId: string;
```

- *Type:* string

The VPC ID of the PrivateLink InterfaceVpcEndpoint.

---

### PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps <a name="PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps"></a>

The properties for the PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.Initializer"></a>

```typescript
import { PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const privateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps: PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.endpoint">endpoint</a></code> | <code>aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint</code> | The PrivateLink InterfaceVpcEndpoint to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.endpointType">endpointType</a></code> | <code>string</code> | The type of the PrivateLink InterfaceVpcEndpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.serviceName">serviceName</a></code> | <code>string</code> | The service name of the PrivateLink InterfaceVpcEndpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.subnetId">subnetId</a></code> | <code>string</code> | The subnet ID of the PrivateLink InterfaceVpcEndpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.vpcId">vpcId</a></code> | <code>string</code> | The VPC ID of the PrivateLink InterfaceVpcEndpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold according to the use case. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.subnets">subnets</a></code> | <code>aws-cdk-lib.aws_ec2.ISubnet[]</code> | The subnets of the PrivateLink InterfaceVpcEndpoint. |

---

##### `endpoint`<sup>Required</sup> <a name="endpoint" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.endpoint"></a>

```typescript
public readonly endpoint: InterfaceVpcEndpoint;
```

- *Type:* aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint

The PrivateLink InterfaceVpcEndpoint to monitor.

---

##### `endpointType`<sup>Required</sup> <a name="endpointType" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.endpointType"></a>

```typescript
public readonly endpointType: string;
```

- *Type:* string

The type of the PrivateLink InterfaceVpcEndpoint.

---

##### `serviceName`<sup>Required</sup> <a name="serviceName" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.serviceName"></a>

```typescript
public readonly serviceName: string;
```

- *Type:* string

The service name of the PrivateLink InterfaceVpcEndpoint.

---

##### `subnetId`<sup>Required</sup> <a name="subnetId" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.subnetId"></a>

```typescript
public readonly subnetId: string;
```

- *Type:* string

The subnet ID of the PrivateLink InterfaceVpcEndpoint.

---

##### `vpcId`<sup>Required</sup> <a name="vpcId" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.vpcId"></a>

```typescript
public readonly vpcId: string;
```

- *Type:* string

The VPC ID of the PrivateLink InterfaceVpcEndpoint.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Set the threshold according to the use case.

If you want to be aware of the unhealthy status of the endpoint or endpoint service,
you should set the threshold low so that you get a chance to fix the issue before a huge data loss. You can use historical data to
understand the tolerance for dropped packets and set the threshold accordingly.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect if the endpoint or endpoint service is unhealthy.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* endpointId + ' - ' + subnetId + ' - PacketsDropped'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `subnets`<sup>Optional</sup> <a name="subnets" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointPacketsDroppedAlarmProps.property.subnets"></a>

```typescript
public readonly subnets: ISubnet[];
```

- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]

The subnets of the PrivateLink InterfaceVpcEndpoint.

---

### PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig <a name="PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an PrivateLink Service.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const privateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig: PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig.property.configPacketsDroppedAlarm">configPacketsDroppedAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig">PrivateLinkEndpointsPacketsDroppedAlarmConfig</a></code> | The configuration for the PacketsDropped alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsRecommendedAlarmsMetrics">PrivateLinkEndpointsRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configPacketsDroppedAlarm`<sup>Required</sup> <a name="configPacketsDroppedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig.property.configPacketsDroppedAlarm"></a>

```typescript
public readonly configPacketsDroppedAlarm: PrivateLinkEndpointsPacketsDroppedAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig">PrivateLinkEndpointsPacketsDroppedAlarmConfig</a>

The configuration for the PacketsDropped alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: PrivateLinkEndpointsRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsRecommendedAlarmsMetrics">PrivateLinkEndpointsRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps <a name="PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps"></a>

Properties for the PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.Initializer"></a>

```typescript
import { PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const privateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps: PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.configPacketsDroppedAlarm">configPacketsDroppedAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig">PrivateLinkEndpointsPacketsDroppedAlarmConfig</a></code> | The configuration for the PacketsDropped alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsRecommendedAlarmsMetrics">PrivateLinkEndpointsRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.endpoint">endpoint</a></code> | <code>aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint</code> | The PrivateLink InterfaceVpcEndpoint to monitor. |

---

##### `configPacketsDroppedAlarm`<sup>Required</sup> <a name="configPacketsDroppedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.configPacketsDroppedAlarm"></a>

```typescript
public readonly configPacketsDroppedAlarm: PrivateLinkEndpointsPacketsDroppedAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig">PrivateLinkEndpointsPacketsDroppedAlarmConfig</a>

The configuration for the PacketsDropped alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: PrivateLinkEndpointsRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsRecommendedAlarmsMetrics">PrivateLinkEndpointsRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `endpoint`<sup>Required</sup> <a name="endpoint" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsInterfaceVpcEndpointRecommendedAlarmsProps.property.endpoint"></a>

```typescript
public readonly endpoint: InterfaceVpcEndpoint;
```

- *Type:* aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint

The PrivateLink InterfaceVpcEndpoint to monitor.

---

### PrivateLinkEndpointsPacketsDroppedAlarmConfig <a name="PrivateLinkEndpointsPacketsDroppedAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig"></a>

Configuration for the PacketsDropped alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.Initializer"></a>

```typescript
import { PrivateLinkEndpointsPacketsDroppedAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const privateLinkEndpointsPacketsDroppedAlarmConfig: PrivateLinkEndpointsPacketsDroppedAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.endpointType">endpointType</a></code> | <code>string</code> | The type of the PrivateLink InterfaceVpcEndpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.serviceName">serviceName</a></code> | <code>string</code> | The service name of the PrivateLink InterfaceVpcEndpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | Set the threshold according to the use case. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.vpcId">vpcId</a></code> | <code>string</code> | The VPC ID of the PrivateLink InterfaceVpcEndpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.subnets">subnets</a></code> | <code>aws-cdk-lib.aws_ec2.ISubnet[]</code> | The subnets of the PrivateLink InterfaceVpcEndpoint. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `endpointType`<sup>Required</sup> <a name="endpointType" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.endpointType"></a>

```typescript
public readonly endpointType: string;
```

- *Type:* string

The type of the PrivateLink InterfaceVpcEndpoint.

---

##### `serviceName`<sup>Required</sup> <a name="serviceName" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.serviceName"></a>

```typescript
public readonly serviceName: string;
```

- *Type:* string

The service name of the PrivateLink InterfaceVpcEndpoint.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

Set the threshold according to the use case.

If you want to be aware of the unhealthy status of the endpoint or endpoint service,
you should set the threshold low so that you get a chance to fix the issue before a huge data loss. You can use historical data to
understand the tolerance for dropped packets and set the threshold accordingly.

---

##### `vpcId`<sup>Required</sup> <a name="vpcId" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.vpcId"></a>

```typescript
public readonly vpcId: string;
```

- *Type:* string

The VPC ID of the PrivateLink InterfaceVpcEndpoint.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect if the endpoint or endpoint service is unhealthy.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* endpointId + ' - ' + subnetId + ' - PacketsDropped'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `subnets`<sup>Optional</sup> <a name="subnets" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsPacketsDroppedAlarmConfig.property.subnets"></a>

```typescript
public readonly subnets: ISubnet[];
```

- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]

The subnets of the PrivateLink InterfaceVpcEndpoint.

---

### PrivateLinkServicesAlarmBaseConfig <a name="PrivateLinkServicesAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesAlarmBaseConfig.Initializer"></a>

```typescript
import { PrivateLinkServicesAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const privateLinkServicesAlarmBaseConfig: PrivateLinkServicesAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### PrivateLinkServicesRstPacketsSentAlarmConfig <a name="PrivateLinkServicesRstPacketsSentAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig"></a>

Configuration for the RstPacketsSent alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.Initializer"></a>

```typescript
import { PrivateLinkServicesRstPacketsSentAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const privateLinkServicesRstPacketsSentAlarmConfig: PrivateLinkServicesRstPacketsSentAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.loadBalancerArn">loadBalancerArn</a></code> | <code>string</code> | The load balancer ARN of the PrivateLink VpcEndpointService. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The threshold depends on the use case. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.azs">azs</a></code> | <code>string[]</code> | The availability zone of the PrivateLink VpcEndpointService. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `loadBalancerArn`<sup>Required</sup> <a name="loadBalancerArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.loadBalancerArn"></a>

```typescript
public readonly loadBalancerArn: string;
```

- *Type:* string

The load balancer ARN of the PrivateLink VpcEndpointService.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The threshold depends on the use case.

If your use case can tolerate targets being unhealthy, you can set the threshold high.
If the use case can’t tolerate unhealthy targets you can set the threshold very low.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect unhealthy targets of an endpoint service.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* endpointServiceName + ' - ' + az + ' - RstPacketsSent'

The alarm name.

---

##### `azs`<sup>Optional</sup> <a name="azs" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.azs"></a>

```typescript
public readonly azs: string[];
```

- *Type:* string[]

The availability zone of the PrivateLink VpcEndpointService.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### PrivateLinkServicesVpcEndpointServiceAlarmProps <a name="PrivateLinkServicesVpcEndpointServiceAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceAlarmProps"></a>

The common properties for the PrivateLink VpcEndpointService alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceAlarmProps.Initializer"></a>

```typescript
import { PrivateLinkServicesVpcEndpointServiceAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const privateLinkServicesVpcEndpointServiceAlarmProps: PrivateLinkServicesVpcEndpointServiceAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceAlarmProps.property.az">az</a></code> | <code>string</code> | The availability zone of the PrivateLink VpcEndpointService. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceAlarmProps.property.endpointService">endpointService</a></code> | <code>aws-cdk-lib.aws_ec2.VpcEndpointService</code> | The PrivateLink VpcEndpointService to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceAlarmProps.property.loadBalancerArn">loadBalancerArn</a></code> | <code>string</code> | The load balancer ARN of the PrivateLink VpcEndpointService. |

---

##### `az`<sup>Required</sup> <a name="az" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceAlarmProps.property.az"></a>

```typescript
public readonly az: string;
```

- *Type:* string

The availability zone of the PrivateLink VpcEndpointService.

---

##### `endpointService`<sup>Required</sup> <a name="endpointService" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceAlarmProps.property.endpointService"></a>

```typescript
public readonly endpointService: VpcEndpointService;
```

- *Type:* aws-cdk-lib.aws_ec2.VpcEndpointService

The PrivateLink VpcEndpointService to monitor.

---

##### `loadBalancerArn`<sup>Required</sup> <a name="loadBalancerArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceAlarmProps.property.loadBalancerArn"></a>

```typescript
public readonly loadBalancerArn: string;
```

- *Type:* string

The load balancer ARN of the PrivateLink VpcEndpointService.

---

### PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig <a name="PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an PrivateLink Service.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const privateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig: PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig.property.configRstPacketsSentAlarm">configRstPacketsSentAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig">PrivateLinkServicesRstPacketsSentAlarmConfig</a></code> | The configuration for the RstPacketsSent alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRecommendedAlarmsMetrics">PrivateLinkServicesRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configRstPacketsSentAlarm`<sup>Required</sup> <a name="configRstPacketsSentAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig.property.configRstPacketsSentAlarm"></a>

```typescript
public readonly configRstPacketsSentAlarm: PrivateLinkServicesRstPacketsSentAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig">PrivateLinkServicesRstPacketsSentAlarmConfig</a>

The configuration for the RstPacketsSent alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: PrivateLinkServicesRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRecommendedAlarmsMetrics">PrivateLinkServicesRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps <a name="PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps"></a>

Properties for the PrivateLinkServicesVpcEndpointServiceRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.Initializer"></a>

```typescript
import { PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const privateLinkServicesVpcEndpointServiceRecommendedAlarmsProps: PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.configRstPacketsSentAlarm">configRstPacketsSentAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig">PrivateLinkServicesRstPacketsSentAlarmConfig</a></code> | The configuration for the RstPacketsSent alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRecommendedAlarmsMetrics">PrivateLinkServicesRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.endpointService">endpointService</a></code> | <code>aws-cdk-lib.aws_ec2.VpcEndpointService</code> | The PrivateLink VpcEndpointService to monitor. |

---

##### `configRstPacketsSentAlarm`<sup>Required</sup> <a name="configRstPacketsSentAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.configRstPacketsSentAlarm"></a>

```typescript
public readonly configRstPacketsSentAlarm: PrivateLinkServicesRstPacketsSentAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRstPacketsSentAlarmConfig">PrivateLinkServicesRstPacketsSentAlarmConfig</a>

The configuration for the RstPacketsSent alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: PrivateLinkServicesRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRecommendedAlarmsMetrics">PrivateLinkServicesRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `endpointService`<sup>Required</sup> <a name="endpointService" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRecommendedAlarmsProps.property.endpointService"></a>

```typescript
public readonly endpointService: VpcEndpointService;
```

- *Type:* aws-cdk-lib.aws_ec2.VpcEndpointService

The PrivateLink VpcEndpointService to monitor.

---

### PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps <a name="PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps"></a>

The properties for the PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.Initializer"></a>

```typescript
import { PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const privateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps: PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.az">az</a></code> | <code>string</code> | The availability zone of the PrivateLink VpcEndpointService. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.endpointService">endpointService</a></code> | <code>aws-cdk-lib.aws_ec2.VpcEndpointService</code> | The PrivateLink VpcEndpointService to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.loadBalancerArn">loadBalancerArn</a></code> | <code>string</code> | The load balancer ARN of the PrivateLink VpcEndpointService. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The threshold depends on the use case. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.azs">azs</a></code> | <code>string[]</code> | The availability zone of the PrivateLink VpcEndpointService. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `az`<sup>Required</sup> <a name="az" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.az"></a>

```typescript
public readonly az: string;
```

- *Type:* string

The availability zone of the PrivateLink VpcEndpointService.

---

##### `endpointService`<sup>Required</sup> <a name="endpointService" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.endpointService"></a>

```typescript
public readonly endpointService: VpcEndpointService;
```

- *Type:* aws-cdk-lib.aws_ec2.VpcEndpointService

The PrivateLink VpcEndpointService to monitor.

---

##### `loadBalancerArn`<sup>Required</sup> <a name="loadBalancerArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.loadBalancerArn"></a>

```typescript
public readonly loadBalancerArn: string;
```

- *Type:* string

The load balancer ARN of the PrivateLink VpcEndpointService.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The threshold depends on the use case.

If your use case can tolerate targets being unhealthy, you can set the threshold high.
If the use case can’t tolerate unhealthy targets you can set the threshold very low.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect unhealthy targets of an endpoint service.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* endpointServiceName + ' - ' + az + ' - RstPacketsSent'

The alarm name.

---

##### `azs`<sup>Optional</sup> <a name="azs" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.azs"></a>

```typescript
public readonly azs: string[];
```

- *Type:* string[]

The availability zone of the PrivateLink VpcEndpointService.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesVpcEndpointServiceRstPacketsSentAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### RdsAlarmBaseConfig <a name="RdsAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAlarmBaseConfig.Initializer"></a>

```typescript
import { RdsAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsAlarmBaseConfig: RdsAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### RdsAuroraBinLogReplicationLagAlarmConfig <a name="RdsAuroraBinLogReplicationLagAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig"></a>

Configuration for the AuroraBinLogReplicationLag alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.Initializer"></a>

```typescript
import { RdsAuroraBinLogReplicationLagAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsAuroraBinLogReplicationLagAlarmConfig: RdsAuroraBinLogReplicationLagAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect whether the writer instance is in an error state and can’t replicate the source. This alarm is recommended only for Aurora MySQL.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - AuroraBinLogReplicationLag'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 2

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 1

The value against which the specified statistic is compared.

We recommend that you use -1 as the threshold value because Aurora MySQL publishes
this value if the replica is in an error state.

---

### RdsAuroraBinLogReplicationLagAlarmProps <a name="RdsAuroraBinLogReplicationLagAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps"></a>

The properties for the RdsAuroraBinLogReplicationLag construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.Initializer"></a>

```typescript
import { RdsAuroraBinLogReplicationLagAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsAuroraBinLogReplicationLagAlarmProps: RdsAuroraBinLogReplicationLagAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.databaseCluster">databaseCluster</a></code> | <code>aws-cdk-lib.aws_rds.IDatabaseCluster</code> | The database cluster to monitor. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect whether the writer instance is in an error state and can’t replicate the source. This alarm is recommended only for Aurora MySQL.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - AuroraBinLogReplicationLag'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 2

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 2

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 1

The value against which the specified statistic is compared.

We recommend that you use -1 as the threshold value because Aurora MySQL publishes
this value if the replica is in an error state.

---

##### `databaseCluster`<sup>Required</sup> <a name="databaseCluster" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmProps.property.databaseCluster"></a>

```typescript
public readonly databaseCluster: IDatabaseCluster;
```

- *Type:* aws-cdk-lib.aws_rds.IDatabaseCluster

The database cluster to monitor.

---

### RdsAuroraRecommendedAlarmsConfig <a name="RdsAuroraRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig"></a>

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { RdsAuroraRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsAuroraRecommendedAlarmsConfig: RdsAuroraRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics">RdsRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configDatabaseConnectionsAlarm">configDatabaseConnectionsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig">RdsDatabaseConnectionsAlarmConfig</a></code> | The configuration for the DatabaseConnections alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configDbLoadAlarm">configDbLoadAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig">RdsDbLoadAlarmConfig</a></code> | The configuration for the DbLoad alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configFreeableMemoryAlarm">configFreeableMemoryAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig">RdsFreeableMemoryAlarmConfig</a></code> | The configuration for the FreeableMemory alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configFreeLocalStorageAlarm">configFreeLocalStorageAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig">RdsFreeLocalStorageAlarmConfig</a></code> | The configuration for the FreeLocalStorage alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configFreeStorageSpaceAlarm">configFreeStorageSpaceAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig">RdsFreeStorageSpaceAlarmConfig</a></code> | The configuration for the FreeStorageSpace alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configReadLatencyAlarm">configReadLatencyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig">RdsReadLatencyAlarmConfig</a></code> | The configuration for the ReadLatency alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configWriteLatencyAlarm">configWriteLatencyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig">RdsWriteLatencyAlarmConfig</a></code> | The configuration for the WriteLatency alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configCpuUtilizationAlarm">configCpuUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig">RdsCpuUtilizationAlarmConfig</a></code> | The configuration for the CpuUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configAuroraBinLogReplicationLagAlarm">configAuroraBinLogReplicationLagAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig">RdsAuroraBinLogReplicationLagAlarmConfig</a></code> | The configuration for the AuroraBinLogReplicationLag alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configAuroraVolumeBytesLeftTotalAlarm">configAuroraVolumeBytesLeftTotalAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig">RdsAuroraVolumeBytesLeftTotalAlarmConfig</a></code> | The configuration for the AuroraVolumeBytesLeftTotal alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configAuroraVolumeBytesUsedAlarm">configAuroraVolumeBytesUsedAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig">RdsAuroraVolumeBytesUsedAlarmConfig</a></code> | The configuration for the VolumeBytesUsed anomaly detection alarm. |

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: RdsRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics">RdsRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `configDatabaseConnectionsAlarm`<sup>Required</sup> <a name="configDatabaseConnectionsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configDatabaseConnectionsAlarm"></a>

```typescript
public readonly configDatabaseConnectionsAlarm: RdsDatabaseConnectionsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig">RdsDatabaseConnectionsAlarmConfig</a>

The configuration for the DatabaseConnections alarm.

---

##### `configDbLoadAlarm`<sup>Required</sup> <a name="configDbLoadAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configDbLoadAlarm"></a>

```typescript
public readonly configDbLoadAlarm: RdsDbLoadAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig">RdsDbLoadAlarmConfig</a>

The configuration for the DbLoad alarm.

---

##### `configFreeableMemoryAlarm`<sup>Required</sup> <a name="configFreeableMemoryAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configFreeableMemoryAlarm"></a>

```typescript
public readonly configFreeableMemoryAlarm: RdsFreeableMemoryAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig">RdsFreeableMemoryAlarmConfig</a>

The configuration for the FreeableMemory alarm.

---

##### `configFreeLocalStorageAlarm`<sup>Required</sup> <a name="configFreeLocalStorageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configFreeLocalStorageAlarm"></a>

```typescript
public readonly configFreeLocalStorageAlarm: RdsFreeLocalStorageAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig">RdsFreeLocalStorageAlarmConfig</a>

The configuration for the FreeLocalStorage alarm.

---

##### `configFreeStorageSpaceAlarm`<sup>Required</sup> <a name="configFreeStorageSpaceAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configFreeStorageSpaceAlarm"></a>

```typescript
public readonly configFreeStorageSpaceAlarm: RdsFreeStorageSpaceAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig">RdsFreeStorageSpaceAlarmConfig</a>

The configuration for the FreeStorageSpace alarm.

---

##### `configReadLatencyAlarm`<sup>Required</sup> <a name="configReadLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configReadLatencyAlarm"></a>

```typescript
public readonly configReadLatencyAlarm: RdsReadLatencyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig">RdsReadLatencyAlarmConfig</a>

The configuration for the ReadLatency alarm.

---

##### `configWriteLatencyAlarm`<sup>Required</sup> <a name="configWriteLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configWriteLatencyAlarm"></a>

```typescript
public readonly configWriteLatencyAlarm: RdsWriteLatencyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig">RdsWriteLatencyAlarmConfig</a>

The configuration for the WriteLatency alarm.

---

##### `configCpuUtilizationAlarm`<sup>Optional</sup> <a name="configCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configCpuUtilizationAlarm"></a>

```typescript
public readonly configCpuUtilizationAlarm: RdsCpuUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig">RdsCpuUtilizationAlarmConfig</a>

The configuration for the CpuUtilization alarm.

---

##### `configAuroraBinLogReplicationLagAlarm`<sup>Optional</sup> <a name="configAuroraBinLogReplicationLagAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configAuroraBinLogReplicationLagAlarm"></a>

```typescript
public readonly configAuroraBinLogReplicationLagAlarm: RdsAuroraBinLogReplicationLagAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig">RdsAuroraBinLogReplicationLagAlarmConfig</a>

The configuration for the AuroraBinLogReplicationLag alarm.

---

##### `configAuroraVolumeBytesLeftTotalAlarm`<sup>Optional</sup> <a name="configAuroraVolumeBytesLeftTotalAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configAuroraVolumeBytesLeftTotalAlarm"></a>

```typescript
public readonly configAuroraVolumeBytesLeftTotalAlarm: RdsAuroraVolumeBytesLeftTotalAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig">RdsAuroraVolumeBytesLeftTotalAlarmConfig</a>

The configuration for the AuroraVolumeBytesLeftTotal alarm.

---

##### `configAuroraVolumeBytesUsedAlarm`<sup>Optional</sup> <a name="configAuroraVolumeBytesUsedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig.property.configAuroraVolumeBytesUsedAlarm"></a>

```typescript
public readonly configAuroraVolumeBytesUsedAlarm: RdsAuroraVolumeBytesUsedAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig">RdsAuroraVolumeBytesUsedAlarmConfig</a>

The configuration for the VolumeBytesUsed anomaly detection alarm.

---

### RdsAuroraRecommendedAlarmsProps <a name="RdsAuroraRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps"></a>

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.Initializer"></a>

```typescript
import { RdsAuroraRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsAuroraRecommendedAlarmsProps: RdsAuroraRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics">RdsRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configDatabaseConnectionsAlarm">configDatabaseConnectionsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig">RdsDatabaseConnectionsAlarmConfig</a></code> | The configuration for the DatabaseConnections alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configDbLoadAlarm">configDbLoadAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig">RdsDbLoadAlarmConfig</a></code> | The configuration for the DbLoad alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configFreeableMemoryAlarm">configFreeableMemoryAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig">RdsFreeableMemoryAlarmConfig</a></code> | The configuration for the FreeableMemory alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configFreeLocalStorageAlarm">configFreeLocalStorageAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig">RdsFreeLocalStorageAlarmConfig</a></code> | The configuration for the FreeLocalStorage alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configFreeStorageSpaceAlarm">configFreeStorageSpaceAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig">RdsFreeStorageSpaceAlarmConfig</a></code> | The configuration for the FreeStorageSpace alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configReadLatencyAlarm">configReadLatencyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig">RdsReadLatencyAlarmConfig</a></code> | The configuration for the ReadLatency alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configWriteLatencyAlarm">configWriteLatencyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig">RdsWriteLatencyAlarmConfig</a></code> | The configuration for the WriteLatency alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configCpuUtilizationAlarm">configCpuUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig">RdsCpuUtilizationAlarmConfig</a></code> | The configuration for the CpuUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configAuroraBinLogReplicationLagAlarm">configAuroraBinLogReplicationLagAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig">RdsAuroraBinLogReplicationLagAlarmConfig</a></code> | The configuration for the AuroraBinLogReplicationLag alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configAuroraVolumeBytesLeftTotalAlarm">configAuroraVolumeBytesLeftTotalAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig">RdsAuroraVolumeBytesLeftTotalAlarmConfig</a></code> | The configuration for the AuroraVolumeBytesLeftTotal alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configAuroraVolumeBytesUsedAlarm">configAuroraVolumeBytesUsedAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig">RdsAuroraVolumeBytesUsedAlarmConfig</a></code> | The configuration for the VolumeBytesUsed anomaly detection alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.databaseCluster">databaseCluster</a></code> | <code>aws-cdk-lib.aws_rds.IDatabaseCluster</code> | The database cluster to apply the recommended alarms. |

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: RdsRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics">RdsRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `configDatabaseConnectionsAlarm`<sup>Required</sup> <a name="configDatabaseConnectionsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configDatabaseConnectionsAlarm"></a>

```typescript
public readonly configDatabaseConnectionsAlarm: RdsDatabaseConnectionsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig">RdsDatabaseConnectionsAlarmConfig</a>

The configuration for the DatabaseConnections alarm.

---

##### `configDbLoadAlarm`<sup>Required</sup> <a name="configDbLoadAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configDbLoadAlarm"></a>

```typescript
public readonly configDbLoadAlarm: RdsDbLoadAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig">RdsDbLoadAlarmConfig</a>

The configuration for the DbLoad alarm.

---

##### `configFreeableMemoryAlarm`<sup>Required</sup> <a name="configFreeableMemoryAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configFreeableMemoryAlarm"></a>

```typescript
public readonly configFreeableMemoryAlarm: RdsFreeableMemoryAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig">RdsFreeableMemoryAlarmConfig</a>

The configuration for the FreeableMemory alarm.

---

##### `configFreeLocalStorageAlarm`<sup>Required</sup> <a name="configFreeLocalStorageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configFreeLocalStorageAlarm"></a>

```typescript
public readonly configFreeLocalStorageAlarm: RdsFreeLocalStorageAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig">RdsFreeLocalStorageAlarmConfig</a>

The configuration for the FreeLocalStorage alarm.

---

##### `configFreeStorageSpaceAlarm`<sup>Required</sup> <a name="configFreeStorageSpaceAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configFreeStorageSpaceAlarm"></a>

```typescript
public readonly configFreeStorageSpaceAlarm: RdsFreeStorageSpaceAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig">RdsFreeStorageSpaceAlarmConfig</a>

The configuration for the FreeStorageSpace alarm.

---

##### `configReadLatencyAlarm`<sup>Required</sup> <a name="configReadLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configReadLatencyAlarm"></a>

```typescript
public readonly configReadLatencyAlarm: RdsReadLatencyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig">RdsReadLatencyAlarmConfig</a>

The configuration for the ReadLatency alarm.

---

##### `configWriteLatencyAlarm`<sup>Required</sup> <a name="configWriteLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configWriteLatencyAlarm"></a>

```typescript
public readonly configWriteLatencyAlarm: RdsWriteLatencyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig">RdsWriteLatencyAlarmConfig</a>

The configuration for the WriteLatency alarm.

---

##### `configCpuUtilizationAlarm`<sup>Optional</sup> <a name="configCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configCpuUtilizationAlarm"></a>

```typescript
public readonly configCpuUtilizationAlarm: RdsCpuUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig">RdsCpuUtilizationAlarmConfig</a>

The configuration for the CpuUtilization alarm.

---

##### `configAuroraBinLogReplicationLagAlarm`<sup>Optional</sup> <a name="configAuroraBinLogReplicationLagAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configAuroraBinLogReplicationLagAlarm"></a>

```typescript
public readonly configAuroraBinLogReplicationLagAlarm: RdsAuroraBinLogReplicationLagAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraBinLogReplicationLagAlarmConfig">RdsAuroraBinLogReplicationLagAlarmConfig</a>

The configuration for the AuroraBinLogReplicationLag alarm.

---

##### `configAuroraVolumeBytesLeftTotalAlarm`<sup>Optional</sup> <a name="configAuroraVolumeBytesLeftTotalAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configAuroraVolumeBytesLeftTotalAlarm"></a>

```typescript
public readonly configAuroraVolumeBytesLeftTotalAlarm: RdsAuroraVolumeBytesLeftTotalAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig">RdsAuroraVolumeBytesLeftTotalAlarmConfig</a>

The configuration for the AuroraVolumeBytesLeftTotal alarm.

---

##### `configAuroraVolumeBytesUsedAlarm`<sup>Optional</sup> <a name="configAuroraVolumeBytesUsedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.configAuroraVolumeBytesUsedAlarm"></a>

```typescript
public readonly configAuroraVolumeBytesUsedAlarm: RdsAuroraVolumeBytesUsedAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig">RdsAuroraVolumeBytesUsedAlarmConfig</a>

The configuration for the VolumeBytesUsed anomaly detection alarm.

---

##### `databaseCluster`<sup>Required</sup> <a name="databaseCluster" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsProps.property.databaseCluster"></a>

```typescript
public readonly databaseCluster: IDatabaseCluster;
```

- *Type:* aws-cdk-lib.aws_rds.IDatabaseCluster

The database cluster to apply the recommended alarms.

---

### RdsAuroraVolumeBytesLeftTotalAlarmConfig <a name="RdsAuroraVolumeBytesLeftTotalAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig"></a>

Configuration for the AuroraVolumeBytesLeftTotal alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.Initializer"></a>

```typescript
import { RdsAuroraVolumeBytesLeftTotalAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsAuroraVolumeBytesLeftTotalAlarmConfig: RdsAuroraVolumeBytesLeftTotalAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value in bytes against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect how close the Aurora cluster is to the volume size limit. This alarm can prevent an out-of-space error that occurs when your cluster runs out of space. This alarm is recommended only for Aurora MySQL.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - AuroraVolumeBytesLeftTotal'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value in bytes against which the specified statistic is compared.

You should calculate 10%-20% of the actual size limit based on velocity and
trend of volume usage increase, and then use that result as the threshold value
to proactively take action before the volume reaches its limit.

---

### RdsAuroraVolumeBytesLeftTotalAlarmProps <a name="RdsAuroraVolumeBytesLeftTotalAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps"></a>

The properties for the RdsAuroraVolumeBytesLeftTotal construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.Initializer"></a>

```typescript
import { RdsAuroraVolumeBytesLeftTotalAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsAuroraVolumeBytesLeftTotalAlarmProps: RdsAuroraVolumeBytesLeftTotalAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value in bytes against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.databaseCluster">databaseCluster</a></code> | <code>aws-cdk-lib.aws_rds.IDatabaseCluster</code> | The database cluster to monitor. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect how close the Aurora cluster is to the volume size limit. This alarm can prevent an out-of-space error that occurs when your cluster runs out of space. This alarm is recommended only for Aurora MySQL.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - AuroraVolumeBytesLeftTotal'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value in bytes against which the specified statistic is compared.

You should calculate 10%-20% of the actual size limit based on velocity and
trend of volume usage increase, and then use that result as the threshold value
to proactively take action before the volume reaches its limit.

---

##### `databaseCluster`<sup>Required</sup> <a name="databaseCluster" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesLeftTotalAlarmProps.property.databaseCluster"></a>

```typescript
public readonly databaseCluster: IDatabaseCluster;
```

- *Type:* aws-cdk-lib.aws_rds.IDatabaseCluster

The database cluster to monitor.

---

### RdsAuroraVolumeBytesUsedAlarmConfig <a name="RdsAuroraVolumeBytesUsedAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig"></a>

Configuration for the VolumeBytesUsed anomaly detection alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.Initializer"></a>

```typescript
import { RdsAuroraVolumeBytesUsedAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsAuroraVolumeBytesUsedAlarmConfig: RdsAuroraVolumeBytesUsedAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | The comparison operator used to compare the metric against the anomaly detection band. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the anomaly detection band. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a multiplier on the model's prediction interval. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm detects unusual growth in the amount of storage used by the Aurora cluster volume, which can indicate runaway storage usage (e.g. missing autovacuum, bloat, or a misbehaving ingest path) that would otherwise go unnoticed because Aurora storage grows automatically.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* cluster.clusterIdentifier + ' - VolumeBytesUsed'

The alarm name.

---

##### `comparisonOperator`<sup>Optional</sup> <a name="comparisonOperator" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.comparisonOperator"></a>

```typescript
public readonly comparisonOperator: ComparisonOperator;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.ComparisonOperator
- *Default:* cloudwatch.ComparisonOperator.GREATER_THAN_UPPER_THRESHOLD

The comparison operator used to compare the metric against the anomaly detection band.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the anomaly detection band.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmConfig.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8

The width of the anomaly detection band, expressed as a multiplier on the model's prediction interval.

---

### RdsAuroraVolumeBytesUsedAlarmProps <a name="RdsAuroraVolumeBytesUsedAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps"></a>

The properties for the RdsAuroraVolumeBytesUsedAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.Initializer"></a>

```typescript
import { RdsAuroraVolumeBytesUsedAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsAuroraVolumeBytesUsedAlarmProps: RdsAuroraVolumeBytesUsedAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | The comparison operator used to compare the metric against the anomaly detection band. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the anomaly detection band. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.stdDevs">stdDevs</a></code> | <code>number</code> | The width of the anomaly detection band, expressed as a multiplier on the model's prediction interval. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.databaseCluster">databaseCluster</a></code> | <code>aws-cdk-lib.aws_rds.IDatabaseCluster</code> | The database cluster to monitor. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm detects unusual growth in the amount of storage used by the Aurora cluster volume, which can indicate runaway storage usage (e.g. missing autovacuum, bloat, or a misbehaving ingest path) that would otherwise go unnoticed because Aurora storage grows automatically.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* cluster.clusterIdentifier + ' - VolumeBytesUsed'

The alarm name.

---

##### `comparisonOperator`<sup>Optional</sup> <a name="comparisonOperator" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.comparisonOperator"></a>

```typescript
public readonly comparisonOperator: ComparisonOperator;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.ComparisonOperator
- *Default:* cloudwatch.ComparisonOperator.GREATER_THAN_UPPER_THRESHOLD

The comparison operator used to compare the metric against the anomaly detection band.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the anomaly detection band.

---

##### `stdDevs`<sup>Optional</sup> <a name="stdDevs" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.stdDevs"></a>

```typescript
public readonly stdDevs: number;
```

- *Type:* number
- *Default:* 8

The width of the anomaly detection band, expressed as a multiplier on the model's prediction interval.

---

##### `databaseCluster`<sup>Required</sup> <a name="databaseCluster" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraVolumeBytesUsedAlarmProps.property.databaseCluster"></a>

```typescript
public readonly databaseCluster: IDatabaseCluster;
```

- *Type:* aws-cdk-lib.aws_rds.IDatabaseCluster

The database cluster to monitor.

---

### RdsCpuUtilizationAlarmConfig <a name="RdsCpuUtilizationAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig"></a>

Configuration for the CpuUtilization alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.Initializer"></a>

```typescript
import { RdsCpuUtilizationAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsCpuUtilizationAlarmConfig: RdsCpuUtilizationAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The percentage (0-100) value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect consistent high CPU utilization in order to prevent very high response time and time-outs. If you want to check micro-bursting of CPU utilization you can set a lower alarm evaluation time.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - CpuUtilization'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 90

The percentage (0-100) value against which the specified statistic is compared.

Random spikes in CPU consumption might not hamper database performance, but sustained
high CPU can hinder upcoming database requests. Depending on the overall database
workload, high CPU at your RDS/Aurora instance can degrade the overall performance.

---

### RdsDatabaseConnectionsAlarmConfig <a name="RdsDatabaseConnectionsAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig"></a>

Configuration for the DatabaseConnections alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.Initializer"></a>

```typescript
import { RdsDatabaseConnectionsAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsDatabaseConnectionsAlarmConfig: RdsDatabaseConnectionsAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The number of connections against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The number of connections against which the specified statistic is compared.

The number of connections allowed depends on the size of your DB instance class and
database engine-specific parameters related to processes/connections. You should
calculate a value between 90-95% of the maximum number of connections for your database
and use that result as the threshold value.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to help prevent rejected connections when the maximum number of DB connections is reached. This alarm is not recommended if you frequently change DB instance class, because doing so changes the memory and default maximum number of connections.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - DatabaseConnections'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### RdsDbLoadAlarmConfig <a name="RdsDbLoadAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig"></a>

Configuration for the DbLoad alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.Initializer"></a>

```typescript
import { RdsDbLoadAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsDbLoadAlarmConfig: RdsDbLoadAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistic is compared.

The maximum vCPU value is determined by the number of vCPU (virtual CPU) cores
for your DB instance. Depending on the maximum vCPU, different values for the
threshold can be appropriate. Ideally, DB load should not go above vCPU line.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect a high DB load. High DB load can cause performance issues in the DB instance. This alarm is not applicable to serverless DB instances.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - DBLoad'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

### RdsFreeableMemoryAlarmConfig <a name="RdsFreeableMemoryAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig"></a>

Configuration for the FreeableMemory alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.Initializer"></a>

```typescript
import { RdsFreeableMemoryAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsFreeableMemoryAlarmConfig: RdsFreeableMemoryAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The percentage value (0-100) against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The percentage value (0-100) against which the specified statistic is compared.

Depending on the workload and instance class, different values for the threshold
can be appropriate. Ideally, available memory should not go below 25% of total
memory for prolonged periods. For Aurora, you can set the threshold close to 5%,
because the metric approaching 0 means that the DB instance has scaled up as much
as it can. You can analyze the historical behavior of this metric to determine
sensible threshold levels.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to help prevent running out of memory which can result in rejected connections.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - FreeableMemory'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

### RdsFreeLocalStorageAlarmConfig <a name="RdsFreeLocalStorageAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig"></a>

Configuration for the FreeLocalStorage alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.Initializer"></a>

```typescript
import { RdsFreeLocalStorageAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsFreeLocalStorageAlarmConfig: RdsFreeLocalStorageAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The percentage value (0-100) against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The percentage value (0-100) against which the specified statistic is compared.

You should calculate about 10%-20% of the amount of storage available based on
velocity and trend of volume usage, and then use that result as the threshold value
to proactively take action before the volume reaches its limit.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect how close the Aurora DB instance is to reaching the local storage limit, if you do not use Aurora Serverless v2 or higher. Local storage can reach capacity when you store non-persistent data, such as temporary table and log files, in the local storage. This alarm can prevent an out-of-space error that occurs when your DB instance runs out of local storage.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - FreeLocalStorage'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### RdsFreeStorageSpaceAlarmConfig <a name="RdsFreeStorageSpaceAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig"></a>

Configuration for the FreeStorageSpace alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.Initializer"></a>

```typescript
import { RdsFreeStorageSpaceAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsFreeStorageSpaceAlarmConfig: RdsFreeStorageSpaceAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The percentage value (0-100) against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The percentage value (0-100) against which the specified statistic is compared.

The threshold value will depend on the currently allocated storage space. Typically,
you should calculate the value of 10 percent of the allocated storage space and use
that result as the threshold value.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps prevent storage full issues. This can prevent downtime that occurs when your database instance runs out of storage. We do not recommend using this alarm if you have storage auto scaling enabled, or if you frequently change the storage capacity of the database instance.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - FreeStorageSpace'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### RdsInstanceAlarmProps <a name="RdsInstanceAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceAlarmProps"></a>

The common properties for the instance alarms.

The alarm should receive either
instanceIdentifier or databaseInstance.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceAlarmProps.Initializer"></a>

```typescript
import { RdsInstanceAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsInstanceAlarmProps: RdsInstanceAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceAlarmProps.property.databaseInstance">databaseInstance</a></code> | <code>aws-cdk-lib.aws_rds.IDatabaseInstance</code> | The database instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceAlarmProps.property.instanceIdentifier">instanceIdentifier</a></code> | <code>string</code> | The database instance identifier to monitor. |

---

##### `databaseInstance`<sup>Optional</sup> <a name="databaseInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceAlarmProps.property.databaseInstance"></a>

```typescript
public readonly databaseInstance: IDatabaseInstance;
```

- *Type:* aws-cdk-lib.aws_rds.IDatabaseInstance

The database instance to monitor.

---

##### `instanceIdentifier`<sup>Optional</sup> <a name="instanceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceAlarmProps.property.instanceIdentifier"></a>

```typescript
public readonly instanceIdentifier: string;
```

- *Type:* string

The database instance identifier to monitor.

---

### RdsInstanceCpuUtilizationAlarmProps <a name="RdsInstanceCpuUtilizationAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps"></a>

The properties for the RdsInstanceCpuUtilizationAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.Initializer"></a>

```typescript
import { RdsInstanceCpuUtilizationAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsInstanceCpuUtilizationAlarmProps: RdsInstanceCpuUtilizationAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.databaseInstance">databaseInstance</a></code> | <code>aws-cdk-lib.aws_rds.IDatabaseInstance</code> | The database instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.instanceIdentifier">instanceIdentifier</a></code> | <code>string</code> | The database instance identifier to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The percentage (0-100) value against which the specified statistic is compared. |

---

##### `databaseInstance`<sup>Optional</sup> <a name="databaseInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.databaseInstance"></a>

```typescript
public readonly databaseInstance: IDatabaseInstance;
```

- *Type:* aws-cdk-lib.aws_rds.IDatabaseInstance

The database instance to monitor.

---

##### `instanceIdentifier`<sup>Optional</sup> <a name="instanceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.instanceIdentifier"></a>

```typescript
public readonly instanceIdentifier: string;
```

- *Type:* string

The database instance identifier to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect consistent high CPU utilization in order to prevent very high response time and time-outs. If you want to check micro-bursting of CPU utilization you can set a lower alarm evaluation time.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - CpuUtilization'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceCpuUtilizationAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 90

The percentage (0-100) value against which the specified statistic is compared.

Random spikes in CPU consumption might not hamper database performance, but sustained
high CPU can hinder upcoming database requests. Depending on the overall database
workload, high CPU at your RDS/Aurora instance can degrade the overall performance.

---

### RdsInstanceDatabaseConnectionsAlarmProps <a name="RdsInstanceDatabaseConnectionsAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps"></a>

The properties for the RdsInstanceDatabaseConnectionsAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.Initializer"></a>

```typescript
import { RdsInstanceDatabaseConnectionsAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsInstanceDatabaseConnectionsAlarmProps: RdsInstanceDatabaseConnectionsAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.databaseInstance">databaseInstance</a></code> | <code>aws-cdk-lib.aws_rds.IDatabaseInstance</code> | The database instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.instanceIdentifier">instanceIdentifier</a></code> | <code>string</code> | The database instance identifier to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The number of connections against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `databaseInstance`<sup>Optional</sup> <a name="databaseInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.databaseInstance"></a>

```typescript
public readonly databaseInstance: IDatabaseInstance;
```

- *Type:* aws-cdk-lib.aws_rds.IDatabaseInstance

The database instance to monitor.

---

##### `instanceIdentifier`<sup>Optional</sup> <a name="instanceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.instanceIdentifier"></a>

```typescript
public readonly instanceIdentifier: string;
```

- *Type:* string

The database instance identifier to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The number of connections against which the specified statistic is compared.

The number of connections allowed depends on the size of your DB instance class and
database engine-specific parameters related to processes/connections. You should
calculate a value between 90-95% of the maximum number of connections for your database
and use that result as the threshold value.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to help prevent rejected connections when the maximum number of DB connections is reached. This alarm is not recommended if you frequently change DB instance class, because doing so changes the memory and default maximum number of connections.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - DatabaseConnections'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDatabaseConnectionsAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### RdsInstanceDbLoadAlarmProps <a name="RdsInstanceDbLoadAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps"></a>

The properties for the RdsInstanceDbLoadAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.Initializer"></a>

```typescript
import { RdsInstanceDbLoadAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsInstanceDbLoadAlarmProps: RdsInstanceDbLoadAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.databaseInstance">databaseInstance</a></code> | <code>aws-cdk-lib.aws_rds.IDatabaseInstance</code> | The database instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.instanceIdentifier">instanceIdentifier</a></code> | <code>string</code> | The database instance identifier to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `databaseInstance`<sup>Optional</sup> <a name="databaseInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.databaseInstance"></a>

```typescript
public readonly databaseInstance: IDatabaseInstance;
```

- *Type:* aws-cdk-lib.aws_rds.IDatabaseInstance

The database instance to monitor.

---

##### `instanceIdentifier`<sup>Optional</sup> <a name="instanceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.instanceIdentifier"></a>

```typescript
public readonly instanceIdentifier: string;
```

- *Type:* string

The database instance identifier to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistic is compared.

The maximum vCPU value is determined by the number of vCPU (virtual CPU) cores
for your DB instance. Depending on the maximum vCPU, different values for the
threshold can be appropriate. Ideally, DB load should not go above vCPU line.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect a high DB load. High DB load can cause performance issues in the DB instance. This alarm is not applicable to serverless DB instances.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - DBLoad'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceDbLoadAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

### RdsInstanceFreeableMemoryAlarmProps <a name="RdsInstanceFreeableMemoryAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps"></a>

The properties for the RdsInstanceFreeableMemoryAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.Initializer"></a>

```typescript
import { RdsInstanceFreeableMemoryAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsInstanceFreeableMemoryAlarmProps: RdsInstanceFreeableMemoryAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.databaseInstance">databaseInstance</a></code> | <code>aws-cdk-lib.aws_rds.IDatabaseInstance</code> | The database instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.instanceIdentifier">instanceIdentifier</a></code> | <code>string</code> | The database instance identifier to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The percentage value (0-100) against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `databaseInstance`<sup>Optional</sup> <a name="databaseInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.databaseInstance"></a>

```typescript
public readonly databaseInstance: IDatabaseInstance;
```

- *Type:* aws-cdk-lib.aws_rds.IDatabaseInstance

The database instance to monitor.

---

##### `instanceIdentifier`<sup>Optional</sup> <a name="instanceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.instanceIdentifier"></a>

```typescript
public readonly instanceIdentifier: string;
```

- *Type:* string

The database instance identifier to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The percentage value (0-100) against which the specified statistic is compared.

Depending on the workload and instance class, different values for the threshold
can be appropriate. Ideally, available memory should not go below 25% of total
memory for prolonged periods. For Aurora, you can set the threshold close to 5%,
because the metric approaching 0 means that the DB instance has scaled up as much
as it can. You can analyze the historical behavior of this metric to determine
sensible threshold levels.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to help prevent running out of memory which can result in rejected connections.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - FreeableMemory'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeableMemoryAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

### RdsInstanceFreeLocalStorageAlarmProps <a name="RdsInstanceFreeLocalStorageAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps"></a>

The properties for the RdsInstanceFreeLocalStorageAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.Initializer"></a>

```typescript
import { RdsInstanceFreeLocalStorageAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsInstanceFreeLocalStorageAlarmProps: RdsInstanceFreeLocalStorageAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.databaseInstance">databaseInstance</a></code> | <code>aws-cdk-lib.aws_rds.IDatabaseInstance</code> | The database instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.instanceIdentifier">instanceIdentifier</a></code> | <code>string</code> | The database instance identifier to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The percentage value (0-100) against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `databaseInstance`<sup>Optional</sup> <a name="databaseInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.databaseInstance"></a>

```typescript
public readonly databaseInstance: IDatabaseInstance;
```

- *Type:* aws-cdk-lib.aws_rds.IDatabaseInstance

The database instance to monitor.

---

##### `instanceIdentifier`<sup>Optional</sup> <a name="instanceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.instanceIdentifier"></a>

```typescript
public readonly instanceIdentifier: string;
```

- *Type:* string

The database instance identifier to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The percentage value (0-100) against which the specified statistic is compared.

You should calculate about 10%-20% of the amount of storage available based on
velocity and trend of volume usage, and then use that result as the threshold value
to proactively take action before the volume reaches its limit.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect how close the Aurora DB instance is to reaching the local storage limit, if you do not use Aurora Serverless v2 or higher. Local storage can reach capacity when you store non-persistent data, such as temporary table and log files, in the local storage. This alarm can prevent an out-of-space error that occurs when your DB instance runs out of local storage.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - FreeLocalStorage'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeLocalStorageAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### RdsInstanceFreeStorageSpaceAlarmProps <a name="RdsInstanceFreeStorageSpaceAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps"></a>

The properties for the RdsInstanceFreeStorageSpaceAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.Initializer"></a>

```typescript
import { RdsInstanceFreeStorageSpaceAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsInstanceFreeStorageSpaceAlarmProps: RdsInstanceFreeStorageSpaceAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.databaseInstance">databaseInstance</a></code> | <code>aws-cdk-lib.aws_rds.IDatabaseInstance</code> | The database instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.instanceIdentifier">instanceIdentifier</a></code> | <code>string</code> | The database instance identifier to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The percentage value (0-100) against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `databaseInstance`<sup>Optional</sup> <a name="databaseInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.databaseInstance"></a>

```typescript
public readonly databaseInstance: IDatabaseInstance;
```

- *Type:* aws-cdk-lib.aws_rds.IDatabaseInstance

The database instance to monitor.

---

##### `instanceIdentifier`<sup>Optional</sup> <a name="instanceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.instanceIdentifier"></a>

```typescript
public readonly instanceIdentifier: string;
```

- *Type:* string

The database instance identifier to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The percentage value (0-100) against which the specified statistic is compared.

The threshold value will depend on the currently allocated storage space. Typically,
you should calculate the value of 10 percent of the allocated storage space and use
that result as the threshold value.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps prevent storage full issues. This can prevent downtime that occurs when your database instance runs out of storage. We do not recommend using this alarm if you have storage auto scaling enabled, or if you frequently change the storage capacity of the database instance.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - FreeStorageSpace'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceFreeStorageSpaceAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### RdsInstanceReadLatencyAlarmProps <a name="RdsInstanceReadLatencyAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps"></a>

The properties for the RdsInstanceReadLatencyAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.Initializer"></a>

```typescript
import { RdsInstanceReadLatencyAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsInstanceReadLatencyAlarmProps: RdsInstanceReadLatencyAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.databaseInstance">databaseInstance</a></code> | <code>aws-cdk-lib.aws_rds.IDatabaseInstance</code> | The database instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.instanceIdentifier">instanceIdentifier</a></code> | <code>string</code> | The database instance identifier to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value in milliseconds against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `databaseInstance`<sup>Optional</sup> <a name="databaseInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.databaseInstance"></a>

```typescript
public readonly databaseInstance: IDatabaseInstance;
```

- *Type:* aws-cdk-lib.aws_rds.IDatabaseInstance

The database instance to monitor.

---

##### `instanceIdentifier`<sup>Optional</sup> <a name="instanceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.instanceIdentifier"></a>

```typescript
public readonly instanceIdentifier: string;
```

- *Type:* string

The database instance identifier to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value in milliseconds against which the specified statistic is compared.

The recommended threshold value for this alarm is highly dependent on your use case.
Read latencies higher than 20 milliseconds are likely a cause for investigation.
You can also set a higher threshold if your application can have higher latency for
read operations. Review the criticality and requirements of read latency and analyze
the historical behavior of this metric to determine sensible threshold levels.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high read latency. Database disks normally have a low read/write latency, but they can have issues that can cause high latency operations.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - ReadLatency'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceReadLatencyAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### RdsInstanceRecommendedAlarmsConfig <a name="RdsInstanceRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig"></a>

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { RdsInstanceRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsInstanceRecommendedAlarmsConfig: RdsInstanceRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics">RdsRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configDatabaseConnectionsAlarm">configDatabaseConnectionsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig">RdsDatabaseConnectionsAlarmConfig</a></code> | The configuration for the DatabaseConnections alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configDbLoadAlarm">configDbLoadAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig">RdsDbLoadAlarmConfig</a></code> | The configuration for the DbLoad alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configFreeableMemoryAlarm">configFreeableMemoryAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig">RdsFreeableMemoryAlarmConfig</a></code> | The configuration for the FreeableMemory alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configFreeLocalStorageAlarm">configFreeLocalStorageAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig">RdsFreeLocalStorageAlarmConfig</a></code> | The configuration for the FreeLocalStorage alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configFreeStorageSpaceAlarm">configFreeStorageSpaceAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig">RdsFreeStorageSpaceAlarmConfig</a></code> | The configuration for the FreeStorageSpace alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configReadLatencyAlarm">configReadLatencyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig">RdsReadLatencyAlarmConfig</a></code> | The configuration for the ReadLatency alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configWriteLatencyAlarm">configWriteLatencyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig">RdsWriteLatencyAlarmConfig</a></code> | The configuration for the WriteLatency alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configCpuUtilizationAlarm">configCpuUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig">RdsCpuUtilizationAlarmConfig</a></code> | The configuration for the CpuUtilization alarm. |

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: RdsRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics">RdsRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `configDatabaseConnectionsAlarm`<sup>Required</sup> <a name="configDatabaseConnectionsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configDatabaseConnectionsAlarm"></a>

```typescript
public readonly configDatabaseConnectionsAlarm: RdsDatabaseConnectionsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig">RdsDatabaseConnectionsAlarmConfig</a>

The configuration for the DatabaseConnections alarm.

---

##### `configDbLoadAlarm`<sup>Required</sup> <a name="configDbLoadAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configDbLoadAlarm"></a>

```typescript
public readonly configDbLoadAlarm: RdsDbLoadAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig">RdsDbLoadAlarmConfig</a>

The configuration for the DbLoad alarm.

---

##### `configFreeableMemoryAlarm`<sup>Required</sup> <a name="configFreeableMemoryAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configFreeableMemoryAlarm"></a>

```typescript
public readonly configFreeableMemoryAlarm: RdsFreeableMemoryAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig">RdsFreeableMemoryAlarmConfig</a>

The configuration for the FreeableMemory alarm.

---

##### `configFreeLocalStorageAlarm`<sup>Required</sup> <a name="configFreeLocalStorageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configFreeLocalStorageAlarm"></a>

```typescript
public readonly configFreeLocalStorageAlarm: RdsFreeLocalStorageAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig">RdsFreeLocalStorageAlarmConfig</a>

The configuration for the FreeLocalStorage alarm.

---

##### `configFreeStorageSpaceAlarm`<sup>Required</sup> <a name="configFreeStorageSpaceAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configFreeStorageSpaceAlarm"></a>

```typescript
public readonly configFreeStorageSpaceAlarm: RdsFreeStorageSpaceAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig">RdsFreeStorageSpaceAlarmConfig</a>

The configuration for the FreeStorageSpace alarm.

---

##### `configReadLatencyAlarm`<sup>Required</sup> <a name="configReadLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configReadLatencyAlarm"></a>

```typescript
public readonly configReadLatencyAlarm: RdsReadLatencyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig">RdsReadLatencyAlarmConfig</a>

The configuration for the ReadLatency alarm.

---

##### `configWriteLatencyAlarm`<sup>Required</sup> <a name="configWriteLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configWriteLatencyAlarm"></a>

```typescript
public readonly configWriteLatencyAlarm: RdsWriteLatencyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig">RdsWriteLatencyAlarmConfig</a>

The configuration for the WriteLatency alarm.

---

##### `configCpuUtilizationAlarm`<sup>Optional</sup> <a name="configCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig.property.configCpuUtilizationAlarm"></a>

```typescript
public readonly configCpuUtilizationAlarm: RdsCpuUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig">RdsCpuUtilizationAlarmConfig</a>

The configuration for the CpuUtilization alarm.

---

### RdsInstanceRecommendedAlarmsProps <a name="RdsInstanceRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps"></a>

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.Initializer"></a>

```typescript
import { RdsInstanceRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsInstanceRecommendedAlarmsProps: RdsInstanceRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics">RdsRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configDatabaseConnectionsAlarm">configDatabaseConnectionsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig">RdsDatabaseConnectionsAlarmConfig</a></code> | The configuration for the DatabaseConnections alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configDbLoadAlarm">configDbLoadAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig">RdsDbLoadAlarmConfig</a></code> | The configuration for the DbLoad alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configFreeableMemoryAlarm">configFreeableMemoryAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig">RdsFreeableMemoryAlarmConfig</a></code> | The configuration for the FreeableMemory alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configFreeLocalStorageAlarm">configFreeLocalStorageAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig">RdsFreeLocalStorageAlarmConfig</a></code> | The configuration for the FreeLocalStorage alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configFreeStorageSpaceAlarm">configFreeStorageSpaceAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig">RdsFreeStorageSpaceAlarmConfig</a></code> | The configuration for the FreeStorageSpace alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configReadLatencyAlarm">configReadLatencyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig">RdsReadLatencyAlarmConfig</a></code> | The configuration for the ReadLatency alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configWriteLatencyAlarm">configWriteLatencyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig">RdsWriteLatencyAlarmConfig</a></code> | The configuration for the WriteLatency alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configCpuUtilizationAlarm">configCpuUtilizationAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig">RdsCpuUtilizationAlarmConfig</a></code> | The configuration for the CpuUtilization alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.databaseInstance">databaseInstance</a></code> | <code>aws-cdk-lib.aws_rds.IDatabaseInstance</code> | The cluster instance to apply the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.instanceIdentifier">instanceIdentifier</a></code> | <code>string</code> | The cluster instance identifier to apply the recommended alarms. |

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: RdsRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics">RdsRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `configDatabaseConnectionsAlarm`<sup>Required</sup> <a name="configDatabaseConnectionsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configDatabaseConnectionsAlarm"></a>

```typescript
public readonly configDatabaseConnectionsAlarm: RdsDatabaseConnectionsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDatabaseConnectionsAlarmConfig">RdsDatabaseConnectionsAlarmConfig</a>

The configuration for the DatabaseConnections alarm.

---

##### `configDbLoadAlarm`<sup>Required</sup> <a name="configDbLoadAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configDbLoadAlarm"></a>

```typescript
public readonly configDbLoadAlarm: RdsDbLoadAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsDbLoadAlarmConfig">RdsDbLoadAlarmConfig</a>

The configuration for the DbLoad alarm.

---

##### `configFreeableMemoryAlarm`<sup>Required</sup> <a name="configFreeableMemoryAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configFreeableMemoryAlarm"></a>

```typescript
public readonly configFreeableMemoryAlarm: RdsFreeableMemoryAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeableMemoryAlarmConfig">RdsFreeableMemoryAlarmConfig</a>

The configuration for the FreeableMemory alarm.

---

##### `configFreeLocalStorageAlarm`<sup>Required</sup> <a name="configFreeLocalStorageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configFreeLocalStorageAlarm"></a>

```typescript
public readonly configFreeLocalStorageAlarm: RdsFreeLocalStorageAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeLocalStorageAlarmConfig">RdsFreeLocalStorageAlarmConfig</a>

The configuration for the FreeLocalStorage alarm.

---

##### `configFreeStorageSpaceAlarm`<sup>Required</sup> <a name="configFreeStorageSpaceAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configFreeStorageSpaceAlarm"></a>

```typescript
public readonly configFreeStorageSpaceAlarm: RdsFreeStorageSpaceAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsFreeStorageSpaceAlarmConfig">RdsFreeStorageSpaceAlarmConfig</a>

The configuration for the FreeStorageSpace alarm.

---

##### `configReadLatencyAlarm`<sup>Required</sup> <a name="configReadLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configReadLatencyAlarm"></a>

```typescript
public readonly configReadLatencyAlarm: RdsReadLatencyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig">RdsReadLatencyAlarmConfig</a>

The configuration for the ReadLatency alarm.

---

##### `configWriteLatencyAlarm`<sup>Required</sup> <a name="configWriteLatencyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configWriteLatencyAlarm"></a>

```typescript
public readonly configWriteLatencyAlarm: RdsWriteLatencyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig">RdsWriteLatencyAlarmConfig</a>

The configuration for the WriteLatency alarm.

---

##### `configCpuUtilizationAlarm`<sup>Optional</sup> <a name="configCpuUtilizationAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.configCpuUtilizationAlarm"></a>

```typescript
public readonly configCpuUtilizationAlarm: RdsCpuUtilizationAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsCpuUtilizationAlarmConfig">RdsCpuUtilizationAlarmConfig</a>

The configuration for the CpuUtilization alarm.

---

##### `databaseInstance`<sup>Optional</sup> <a name="databaseInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.databaseInstance"></a>

```typescript
public readonly databaseInstance: IDatabaseInstance;
```

- *Type:* aws-cdk-lib.aws_rds.IDatabaseInstance

The cluster instance to apply the recommended alarms.

---

##### `instanceIdentifier`<sup>Optional</sup> <a name="instanceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsProps.property.instanceIdentifier"></a>

```typescript
public readonly instanceIdentifier: string;
```

- *Type:* string

The cluster instance identifier to apply the recommended alarms.

---

### RdsInstanceWriteLatencyAlarmProps <a name="RdsInstanceWriteLatencyAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps"></a>

The properties for the RdsInstanceWriteLatencyAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.Initializer"></a>

```typescript
import { RdsInstanceWriteLatencyAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsInstanceWriteLatencyAlarmProps: RdsInstanceWriteLatencyAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.databaseInstance">databaseInstance</a></code> | <code>aws-cdk-lib.aws_rds.IDatabaseInstance</code> | The database instance to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.instanceIdentifier">instanceIdentifier</a></code> | <code>string</code> | The database instance identifier to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value in milliseconds against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `databaseInstance`<sup>Optional</sup> <a name="databaseInstance" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.databaseInstance"></a>

```typescript
public readonly databaseInstance: IDatabaseInstance;
```

- *Type:* aws-cdk-lib.aws_rds.IDatabaseInstance

The database instance to monitor.

---

##### `instanceIdentifier`<sup>Optional</sup> <a name="instanceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.instanceIdentifier"></a>

```typescript
public readonly instanceIdentifier: string;
```

- *Type:* string

The database instance identifier to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value in milliseconds against which the specified statistic is compared.

The recommended threshold value for this alarm is highly dependent on your use case.
Write latencies higher than 20 milliseconds are likely a cause for investigation.
You can also set a higher threshold if your application can have a higher latency
for write operations. Review the criticality and requirements of write latency and
analyze the historical behavior of this metric to determine sensible threshold levels.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high write latency. Although database disks typically have low read/write latency, they may experience problems that cause high latency operations. Monitoring this will assure you the disk latency is as low as expected.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - WriteLatency'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceWriteLatencyAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### RdsReadLatencyAlarmConfig <a name="RdsReadLatencyAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig"></a>

Configuration for the ReadLatency alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.Initializer"></a>

```typescript
import { RdsReadLatencyAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsReadLatencyAlarmConfig: RdsReadLatencyAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value in milliseconds against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value in milliseconds against which the specified statistic is compared.

The recommended threshold value for this alarm is highly dependent on your use case.
Read latencies higher than 20 milliseconds are likely a cause for investigation.
You can also set a higher threshold if your application can have higher latency for
read operations. Review the criticality and requirements of read latency and analyze
the historical behavior of this metric to determine sensible threshold levels.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high read latency. Database disks normally have a low read/write latency, but they can have issues that can cause high latency operations.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - ReadLatency'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsReadLatencyAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### RdsRecommendedAlarmsConfig <a name="RdsRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsConfig"></a>

Configuration for RDS recommended alarms.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { RdsRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsRecommendedAlarmsConfig: RdsRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics">RdsRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: RdsRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics">RdsRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### RdsWriteLatencyAlarmConfig <a name="RdsWriteLatencyAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig"></a>

Configuration for the WriteLatency alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.Initializer"></a>

```typescript
import { RdsWriteLatencyAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const rdsWriteLatencyAlarmConfig: RdsWriteLatencyAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value in milliseconds against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value in milliseconds against which the specified statistic is compared.

The recommended threshold value for this alarm is highly dependent on your use case.
Write latencies higher than 20 milliseconds are likely a cause for investigation.
You can also set a higher threshold if your application can have a higher latency
for write operations. Review the criticality and requirements of write latency and
analyze the historical behavior of this metric to determine sensible threshold levels.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect high write latency. Although database disks typically have low read/write latency, they may experience problems that cause high latency operations. Monitoring this will assure you the disk latency is as low as expected.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* database.instanceIdentifiers[*] + ' - WriteLatency'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsWriteLatencyAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### ReplicationTaskProps <a name="ReplicationTaskProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps"></a>

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.Initializer"></a>

```typescript
import { ReplicationTaskProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const replicationTaskProps: ReplicationTaskProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.migrationType">migrationType</a></code> | <code>string</code> | The migration type. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.replicationInstanceArn">replicationInstanceArn</a></code> | <code>string</code> | The Amazon Resource Name (ARN) of a replication instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.sourceEndpointArn">sourceEndpointArn</a></code> | <code>string</code> | An Amazon Resource Name (ARN) that uniquely identifies the source endpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.tableMappings">tableMappings</a></code> | <code>string</code> | The table mappings for the task, in JSON format. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.targetEndpointArn">targetEndpointArn</a></code> | <code>string</code> | An Amazon Resource Name (ARN) that uniquely identifies the target endpoint. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.cdcStartPosition">cdcStartPosition</a></code> | <code>string</code> | Indicates when you want a change data capture (CDC) operation to start. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.cdcStartTime">cdcStartTime</a></code> | <code>number</code> | Indicates the start time for a change data capture (CDC) operation. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.cdcStopPosition">cdcStopPosition</a></code> | <code>string</code> | Indicates when you want a change data capture (CDC) operation to stop. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.replicationTaskIdentifier">replicationTaskIdentifier</a></code> | <code>string</code> | An identifier for the replication task. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.replicationTaskSettings">replicationTaskSettings</a></code> | <code>string</code> | Overall settings for the task, in JSON format. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.resourceIdentifier">resourceIdentifier</a></code> | <code>string</code> | A display name for the resource identifier at the end of the `EndpointArn` response parameter that is returned in the created `Endpoint` object. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.tags">tags</a></code> | <code>aws-cdk-lib.CfnTag[]</code> | One or more tags to be assigned to the replication task. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.taskData">taskData</a></code> | <code>string</code> | Supplemental information that the task requires to migrate the data for certain source and target endpoints. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.replicationInstanceIdentifier">replicationInstanceIdentifier</a></code> | <code>string</code> | The identifier of the replication instance. |

---

##### `migrationType`<sup>Required</sup> <a name="migrationType" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.migrationType"></a>

```typescript
public readonly migrationType: string;
```

- *Type:* string

The migration type.

Valid values: `full-load` | `cdc` | `full-load-and-cdc`

> [http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-migrationtype](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-migrationtype)

---

##### `replicationInstanceArn`<sup>Required</sup> <a name="replicationInstanceArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.replicationInstanceArn"></a>

```typescript
public readonly replicationInstanceArn: string;
```

- *Type:* string

The Amazon Resource Name (ARN) of a replication instance.

> [http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationinstancearn](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationinstancearn)

---

##### `sourceEndpointArn`<sup>Required</sup> <a name="sourceEndpointArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.sourceEndpointArn"></a>

```typescript
public readonly sourceEndpointArn: string;
```

- *Type:* string

An Amazon Resource Name (ARN) that uniquely identifies the source endpoint.

> [http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-sourceendpointarn](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-sourceendpointarn)

---

##### `tableMappings`<sup>Required</sup> <a name="tableMappings" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.tableMappings"></a>

```typescript
public readonly tableMappings: string;
```

- *Type:* string

The table mappings for the task, in JSON format.

For more information, see [Using Table Mapping to Specify Task Settings](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.html) in the *AWS Database Migration Service User Guide* .

> [http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-tablemappings](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-tablemappings)

---

##### `targetEndpointArn`<sup>Required</sup> <a name="targetEndpointArn" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.targetEndpointArn"></a>

```typescript
public readonly targetEndpointArn: string;
```

- *Type:* string

An Amazon Resource Name (ARN) that uniquely identifies the target endpoint.

> [http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-targetendpointarn](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-targetendpointarn)

---

##### `cdcStartPosition`<sup>Optional</sup> <a name="cdcStartPosition" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.cdcStartPosition"></a>

```typescript
public readonly cdcStartPosition: string;
```

- *Type:* string

Indicates when you want a change data capture (CDC) operation to start.

Use either `CdcStartPosition` or `CdcStartTime` to specify when you want a CDC operation to start. Specifying both values results in an error.

The value can be in date, checkpoint, log sequence number (LSN), or system change number (SCN) format.

Here is a date example: `--cdc-start-position "2018-03-08T12:12:12"`

Here is a checkpoint example: `--cdc-start-position "checkpoint:V1#27#mysql-bin-changelog.157832:1975:-1:2002:677883278264080:mysql-bin-changelog.157832:1876#0#0#*#0#93"`

Here is an LSN example: `--cdc-start-position “mysql-bin-changelog.000024:373”`

> When you use this task setting with a source PostgreSQL database, a logical replication slot should already be created and associated with the source endpoint. You can verify this by setting the `slotName` extra connection attribute to the name of this logical replication slot. For more information, see [Extra Connection Attributes When Using PostgreSQL as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.ConnectionAttrib) in the *AWS Database Migration Service User Guide* .

> [http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-cdcstartposition](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-cdcstartposition)

---

##### `cdcStartTime`<sup>Optional</sup> <a name="cdcStartTime" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.cdcStartTime"></a>

```typescript
public readonly cdcStartTime: number;
```

- *Type:* number

Indicates the start time for a change data capture (CDC) operation.

> [http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-cdcstarttime](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-cdcstarttime)

---

##### `cdcStopPosition`<sup>Optional</sup> <a name="cdcStopPosition" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.cdcStopPosition"></a>

```typescript
public readonly cdcStopPosition: string;
```

- *Type:* string

Indicates when you want a change data capture (CDC) operation to stop.

The value can be either server time or commit time.

Here is a server time example: `--cdc-stop-position "server_time:2018-02-09T12:12:12"`

Here is a commit time example: `--cdc-stop-position "commit_time: 2018-02-09T12:12:12"`

> [http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-cdcstopposition](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-cdcstopposition)

---

##### `replicationTaskIdentifier`<sup>Optional</sup> <a name="replicationTaskIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.replicationTaskIdentifier"></a>

```typescript
public readonly replicationTaskIdentifier: string;
```

- *Type:* string

An identifier for the replication task.

Constraints:

- Must contain 1-255 alphanumeric characters or hyphens.
- First character must be a letter.
- Cannot end with a hyphen or contain two consecutive hyphens.

> [http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationtaskidentifier](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationtaskidentifier)

---

##### `replicationTaskSettings`<sup>Optional</sup> <a name="replicationTaskSettings" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.replicationTaskSettings"></a>

```typescript
public readonly replicationTaskSettings: string;
```

- *Type:* string

Overall settings for the task, in JSON format.

For more information, see [Specifying Task Settings for AWS Database Migration Service Tasks](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.html) in the *AWS Database Migration Service User Guide* .

> [http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationtasksettings](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationtasksettings)

---

##### `resourceIdentifier`<sup>Optional</sup> <a name="resourceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.resourceIdentifier"></a>

```typescript
public readonly resourceIdentifier: string;
```

- *Type:* string

A display name for the resource identifier at the end of the `EndpointArn` response parameter that is returned in the created `Endpoint` object.

The value for this parameter can have up to 31 characters. It can contain only ASCII letters, digits, and hyphen ('-'). Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as `Example-App-ARN1` .

For example, this value might result in the `EndpointArn` value `arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1` . If you don't specify a `ResourceIdentifier` value, AWS DMS generates a default identifier value for the end of `EndpointArn` .

> [http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-resourceidentifier](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-resourceidentifier)

---

##### `tags`<sup>Optional</sup> <a name="tags" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.tags"></a>

```typescript
public readonly tags: CfnTag[];
```

- *Type:* aws-cdk-lib.CfnTag[]

One or more tags to be assigned to the replication task.

> [http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-tags](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-tags)

---

##### `taskData`<sup>Optional</sup> <a name="taskData" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.taskData"></a>

```typescript
public readonly taskData: string;
```

- *Type:* string

Supplemental information that the task requires to migrate the data for certain source and target endpoints.

For more information, see [Specifying Supplemental Data for Task Settings](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.TaskData.html) in the *AWS Database Migration Service User Guide.*

> [http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-taskdata](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-taskdata)

---

##### `replicationInstanceIdentifier`<sup>Required</sup> <a name="replicationInstanceIdentifier" id="@renovosolutions/cdk-library-cloudwatch-alarms.ReplicationTaskProps.property.replicationInstanceIdentifier"></a>

```typescript
public readonly replicationInstanceIdentifier: string;
```

- *Type:* string

The identifier of the replication instance.

---

### S3Bucket4xxErrorsAlarmConfig <a name="S3Bucket4xxErrorsAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig"></a>

Configuration for the 4xx errors alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.Initializer"></a>

```typescript
import { S3Bucket4xxErrorsAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const s3Bucket4xxErrorsAlarmConfig: S3Bucket4xxErrorsAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The alarm description. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0.05

The value against which the specified statistic is compared.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps us report the total number of 4xx error status codes that are made in response to client requests. 403 error codes might indicate an incorrect IAM policy, and 404 error codes might indicate mis-behaving client application, for example. Enabling S3 server access logging on a temporary basis will help you to pinpoint the issue's origin using the fields HTTP status and Error Code. To understand more about the error code, see Error Responses (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html).

The alarm description.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* bucket.bucketName + ' - 4xxErrors'

The alarm name.

---

### S3Bucket4xxErrorsAlarmProps <a name="S3Bucket4xxErrorsAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps"></a>

Properties for the S3Bucket4xxErrorsAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.Initializer"></a>

```typescript
import { S3Bucket4xxErrorsAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const s3Bucket4xxErrorsAlarmProps: S3Bucket4xxErrorsAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The alarm description. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.bucket">bucket</a></code> | <code>aws-cdk-lib.aws_s3.IBucket</code> | The S3 bucket to monitor. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0.05

The value against which the specified statistic is compared.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps us report the total number of 4xx error status codes that are made in response to client requests. 403 error codes might indicate an incorrect IAM policy, and 404 error codes might indicate mis-behaving client application, for example. Enabling S3 server access logging on a temporary basis will help you to pinpoint the issue's origin using the fields HTTP status and Error Code. To understand more about the error code, see Error Responses (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html).

The alarm description.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* bucket.bucketName + ' - 4xxErrors'

The alarm name.

---

##### `bucket`<sup>Required</sup> <a name="bucket" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmProps.property.bucket"></a>

```typescript
public readonly bucket: IBucket;
```

- *Type:* aws-cdk-lib.aws_s3.IBucket

The S3 bucket to monitor.

---

### S3Bucket5xxErrorsAlarmConfig <a name="S3Bucket5xxErrorsAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig"></a>

Configuration for the 5xx errors alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.Initializer"></a>

```typescript
import { S3Bucket5xxErrorsAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const s3Bucket5xxErrorsAlarmConfig: S3Bucket5xxErrorsAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The alarm description. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0.05

The value against which the specified statistic is compared.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps you detect a high number of server-side errors. These errors indicate that a client made a request that the server couldn’t complete. This can help you correlate the issue your application is facing because of S3. For more information to help you efficiently handle or reduce errors, see Optimizing performance design patterns (https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance-design-patterns.html#optimizing-performance-timeouts-retries). Errors might also be caused by an the issue with S3, check AWS service health dashboard for the status of Amazon S3 in your Region.

The alarm description.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* bucket.bucketName + ' - 5xxErrors'

The alarm name.

---

### S3Bucket5xxErrorsAlarmProps <a name="S3Bucket5xxErrorsAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps"></a>

Properties for the S3Bucket5xxErrorsAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.Initializer"></a>

```typescript
import { S3Bucket5xxErrorsAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const s3Bucket5xxErrorsAlarmProps: S3Bucket5xxErrorsAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The alarm description. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.bucket">bucket</a></code> | <code>aws-cdk-lib.aws_s3.IBucket</code> | The S3 bucket to monitor. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0.05

The value against which the specified statistic is compared.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps you detect a high number of server-side errors. These errors indicate that a client made a request that the server couldn’t complete. This can help you correlate the issue your application is facing because of S3. For more information to help you efficiently handle or reduce errors, see Optimizing performance design patterns (https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance-design-patterns.html#optimizing-performance-timeouts-retries). Errors might also be caused by an the issue with S3, check AWS service health dashboard for the status of Amazon S3 in your Region.

The alarm description.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* bucket.bucketName + ' - 5xxErrors'

The alarm name.

---

##### `bucket`<sup>Required</sup> <a name="bucket" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmProps.property.bucket"></a>

```typescript
public readonly bucket: IBucket;
```

- *Type:* aws-cdk-lib.aws_s3.IBucket

The S3 bucket to monitor.

---

### S3BucketHttpErrorsAlarmConfig <a name="S3BucketHttpErrorsAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig"></a>

The optional configuration for the 4xx and 5xx error alarms for an S3 bucket.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.Initializer"></a>

```typescript
import { S3BucketHttpErrorsAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const s3BucketHttpErrorsAlarmConfig: S3BucketHttpErrorsAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3BucketHttpErrorsAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0.05

The value against which the specified statistic is compared.

---

### S3RecommendedAlarmsConfig <a name="S3RecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an S3 bucket.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.Initializer"></a>

```typescript
import { S3RecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const s3RecommendedAlarmsConfig: S3RecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.config4xxErrorsAlarm">config4xxErrorsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig">S3Bucket4xxErrorsAlarmConfig</a></code> | The configuration for the 4xx errors alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.config5xxErrorsAlarm">config5xxErrorsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig">S3Bucket5xxErrorsAlarmConfig</a></code> | The configuration for the 5xx errors alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsMetrics">S3RecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `config4xxErrorsAlarm`<sup>Optional</sup> <a name="config4xxErrorsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.config4xxErrorsAlarm"></a>

```typescript
public readonly config4xxErrorsAlarm: S3Bucket4xxErrorsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig">S3Bucket4xxErrorsAlarmConfig</a>

The configuration for the 4xx errors alarm.

---

##### `config5xxErrorsAlarm`<sup>Optional</sup> <a name="config5xxErrorsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.config5xxErrorsAlarm"></a>

```typescript
public readonly config5xxErrorsAlarm: S3Bucket5xxErrorsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig">S3Bucket5xxErrorsAlarmConfig</a>

The configuration for the 5xx errors alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: S3RecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsMetrics">S3RecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### S3RecommendedAlarmsProps <a name="S3RecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps"></a>

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.Initializer"></a>

```typescript
import { S3RecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const s3RecommendedAlarmsProps: S3RecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.config4xxErrorsAlarm">config4xxErrorsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig">S3Bucket4xxErrorsAlarmConfig</a></code> | The configuration for the 4xx errors alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.config5xxErrorsAlarm">config5xxErrorsAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig">S3Bucket5xxErrorsAlarmConfig</a></code> | The configuration for the 5xx errors alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsMetrics">S3RecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.bucket">bucket</a></code> | <code>aws-cdk-lib.aws_s3.IBucket</code> | The S3 bucket to apply the recommended alarms to. |

---

##### `config4xxErrorsAlarm`<sup>Optional</sup> <a name="config4xxErrorsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.config4xxErrorsAlarm"></a>

```typescript
public readonly config4xxErrorsAlarm: S3Bucket4xxErrorsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket4xxErrorsAlarmConfig">S3Bucket4xxErrorsAlarmConfig</a>

The configuration for the 4xx errors alarm.

---

##### `config5xxErrorsAlarm`<sup>Optional</sup> <a name="config5xxErrorsAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.config5xxErrorsAlarm"></a>

```typescript
public readonly config5xxErrorsAlarm: S3Bucket5xxErrorsAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3Bucket5xxErrorsAlarmConfig">S3Bucket5xxErrorsAlarmConfig</a>

The configuration for the 5xx errors alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: S3RecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsMetrics">S3RecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `bucket`<sup>Required</sup> <a name="bucket" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsProps.property.bucket"></a>

```typescript
public readonly bucket: IBucket;
```

- *Type:* aws-cdk-lib.aws_s3.IBucket

The S3 bucket to apply the recommended alarms to.

---

### SfAlarmBaseConfig <a name="SfAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfAlarmBaseConfig.Initializer"></a>

```typescript
import { SfAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sfAlarmBaseConfig: SfAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### SfStateMachineAlarmProps <a name="SfStateMachineAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineAlarmProps"></a>

The common properties for the StepFunctions StateMachine alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineAlarmProps.Initializer"></a>

```typescript
import { SfStateMachineAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sfStateMachineAlarmProps: SfStateMachineAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineAlarmProps.property.stateMachine">stateMachine</a></code> | <code>aws-cdk-lib.aws_stepfunctions.StateMachine</code> | The StateMachine to monitor. |

---

##### `stateMachine`<sup>Required</sup> <a name="stateMachine" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineAlarmProps.property.stateMachine"></a>

```typescript
public readonly stateMachine: StateMachine;
```

- *Type:* aws-cdk-lib.aws_stepfunctions.StateMachine

The StateMachine to monitor.

---

### SfStateMachineExecutionsFailedAlarmConfig <a name="SfStateMachineExecutionsFailedAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig"></a>

Configuration for the ExecutionsFailed alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.Initializer"></a>

```typescript
import { SfStateMachineExecutionsFailedAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sfStateMachineExecutionsFailedAlarmConfig: SfStateMachineExecutionsFailedAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | It helps in tracking the number of executions that fail in AWS Step Functions. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect workflows that are not working as expected.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* stateMachineName + ' - ExecutionsFailed'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 5

It helps in tracking the number of executions that fail in AWS Step Functions.

This is crucial for identifying workflows that are
not performing as expected and require attention. By monitoring the failures, developers can proactively identify and resolve issues
before they impact the business operations. This reduces downtime and improves the overall stability of applications.

---

### SfStateMachineExecutionsFailedAlarmProps <a name="SfStateMachineExecutionsFailedAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps"></a>

The properties for the SfStateMachineExecutionsFailedAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.Initializer"></a>

```typescript
import { SfStateMachineExecutionsFailedAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sfStateMachineExecutionsFailedAlarmProps: SfStateMachineExecutionsFailedAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.stateMachine">stateMachine</a></code> | <code>aws-cdk-lib.aws_stepfunctions.StateMachine</code> | The StateMachine to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | It helps in tracking the number of executions that fail in AWS Step Functions. |

---

##### `stateMachine`<sup>Required</sup> <a name="stateMachine" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.stateMachine"></a>

```typescript
public readonly stateMachine: StateMachine;
```

- *Type:* aws-cdk-lib.aws_stepfunctions.StateMachine

The StateMachine to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect workflows that are not working as expected.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* stateMachineName + ' - ExecutionsFailed'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 5

It helps in tracking the number of executions that fail in AWS Step Functions.

This is crucial for identifying workflows that are
not performing as expected and require attention. By monitoring the failures, developers can proactively identify and resolve issues
before they impact the business operations. This reduces downtime and improves the overall stability of applications.

---

### SfStateMachineExecutionsTimedOutAlarmConfig <a name="SfStateMachineExecutionsTimedOutAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig"></a>

Configuration for the ExecutionsTimedOut alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.Initializer"></a>

```typescript
import { SfStateMachineExecutionsTimedOutAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sfStateMachineExecutionsTimedOutAlarmConfig: SfStateMachineExecutionsTimedOutAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | It helps in identifying timeouts in state machine executions, which can indicate problems like poor configuration, inadequate resource allocation, or issues in the called services that need addressing. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps in identifying timeouts in state machine executions due to poor configuration, inadequate resource allocation, or issues in the called services that need addressing.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* stateMachineName + ' - ExecutionsTimedOut'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 5

It helps in identifying timeouts in state machine executions, which can indicate problems like poor configuration, inadequate resource allocation, or issues in the called services that need addressing.

---

### SfStateMachineExecutionsTimedOutAlarmProps <a name="SfStateMachineExecutionsTimedOutAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps"></a>

The properties for the SfStateMachineExecutionsTimedOutAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.Initializer"></a>

```typescript
import { SfStateMachineExecutionsTimedOutAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sfStateMachineExecutionsTimedOutAlarmProps: SfStateMachineExecutionsTimedOutAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.stateMachine">stateMachine</a></code> | <code>aws-cdk-lib.aws_stepfunctions.StateMachine</code> | The StateMachine to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | It helps in identifying timeouts in state machine executions, which can indicate problems like poor configuration, inadequate resource allocation, or issues in the called services that need addressing. |

---

##### `stateMachine`<sup>Required</sup> <a name="stateMachine" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.stateMachine"></a>

```typescript
public readonly stateMachine: StateMachine;
```

- *Type:* aws-cdk-lib.aws_stepfunctions.StateMachine

The StateMachine to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps in identifying timeouts in state machine executions due to poor configuration, inadequate resource allocation, or issues in the called services that need addressing.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* stateMachineName + ' - ExecutionsTimedOut'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 5

It helps in identifying timeouts in state machine executions, which can indicate problems like poor configuration, inadequate resource allocation, or issues in the called services that need addressing.

---

### SfStateMachineExecutionThrottledAlarmConfig <a name="SfStateMachineExecutionThrottledAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig"></a>

Configuration for the ExecutionThrottled alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.Initializer"></a>

```typescript
import { SfStateMachineExecutionThrottledAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sfStateMachineExecutionThrottledAlarmConfig: SfStateMachineExecutionThrottledAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The ExecutionThrottled metric tracks the number of times state machine executions are throttled due to exceeding AWS service limits. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect throttled executions due to exceeding AWS service limits.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* stateMachineName + ' - ExecutionThrottled'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 5

The ExecutionThrottled metric tracks the number of times state machine executions are throttled due to exceeding AWS service limits.

Monitoring this can help you identify when you are hitting this limits, which could signal that adjustments need to be made either in
the process design or in the service limits themselves.

---

### SfStateMachineExecutionThrottledAlarmProps <a name="SfStateMachineExecutionThrottledAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps"></a>

The properties for the SfStateMachineExecutionThrottledAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.Initializer"></a>

```typescript
import { SfStateMachineExecutionThrottledAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sfStateMachineExecutionThrottledAlarmProps: SfStateMachineExecutionThrottledAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.stateMachine">stateMachine</a></code> | <code>aws-cdk-lib.aws_stepfunctions.StateMachine</code> | The StateMachine to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The ExecutionThrottled metric tracks the number of times state machine executions are throttled due to exceeding AWS service limits. |

---

##### `stateMachine`<sup>Required</sup> <a name="stateMachine" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.stateMachine"></a>

```typescript
public readonly stateMachine: StateMachine;
```

- *Type:* aws-cdk-lib.aws_stepfunctions.StateMachine

The StateMachine to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect throttled executions due to exceeding AWS service limits.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* stateMachineName + ' - ExecutionThrottled'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 5

The ExecutionThrottled metric tracks the number of times state machine executions are throttled due to exceeding AWS service limits.

Monitoring this can help you identify when you are hitting this limits, which could signal that adjustments need to be made either in
the process design or in the service limits themselves.

---

### SfStateMachineExecutionTimeAlarmConfig <a name="SfStateMachineExecutionTimeAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig"></a>

Configuration for the ExecutionTime alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.Initializer"></a>

```typescript
import { SfStateMachineExecutionTimeAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sfStateMachineExecutionTimeAlarmConfig: SfStateMachineExecutionTimeAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | A sudden increase in execution time might indicate issues with the steps of the resources they interact with. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* None

A sudden increase in execution time might indicate issues with the steps of the resources they interact with.

Consider setting a threshold (in milliseconds) that is appropriate for the expected execution time of the state machine.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect sudden increases in execution time..

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* stateMachineName + ' - ExecutionTime'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### SfStateMachineExecutionTimeAlarmProps <a name="SfStateMachineExecutionTimeAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps"></a>

The properties for the SfStateMachineExecutionTimeAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.Initializer"></a>

```typescript
import { SfStateMachineExecutionTimeAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sfStateMachineExecutionTimeAlarmProps: SfStateMachineExecutionTimeAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.stateMachine">stateMachine</a></code> | <code>aws-cdk-lib.aws_stepfunctions.StateMachine</code> | The StateMachine to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | A sudden increase in execution time might indicate issues with the steps of the resources they interact with. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |

---

##### `stateMachine`<sup>Required</sup> <a name="stateMachine" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.stateMachine"></a>

```typescript
public readonly stateMachine: StateMachine;
```

- *Type:* aws-cdk-lib.aws_stepfunctions.StateMachine

The StateMachine to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* None

A sudden increase in execution time might indicate issues with the steps of the resources they interact with.

Consider setting a threshold (in milliseconds) that is appropriate for the expected execution time of the state machine.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect sudden increases in execution time..

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* stateMachineName + ' - ExecutionTime'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

### SfStateMachineRecommendedAlarmsConfig <a name="SfStateMachineRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an StepFunctions Service.

Default actions are overridden by the actions specified in the individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { SfStateMachineRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sfStateMachineRecommendedAlarmsConfig: SfStateMachineRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.configExecutionTimeAlarm">configExecutionTimeAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig">SfStateMachineExecutionTimeAlarmConfig</a></code> | The configuration for the ExecutionTime alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.configExecutionsFailedAlarm">configExecutionsFailedAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig">SfStateMachineExecutionsFailedAlarmConfig</a></code> | The configuration for the ExecutionsFailed alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.configExecutionsTimedOutAlarm">configExecutionsTimedOutAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig">SfStateMachineExecutionsTimedOutAlarmConfig</a></code> | The configuration for the ExecutionsFailed alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.configExecutionThrottledAlarm">configExecutionThrottledAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig">SfStateMachineExecutionThrottledAlarmConfig</a></code> | The configuration for the ExecutionThrottled alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsMetrics">SfRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configExecutionTimeAlarm`<sup>Required</sup> <a name="configExecutionTimeAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.configExecutionTimeAlarm"></a>

```typescript
public readonly configExecutionTimeAlarm: SfStateMachineExecutionTimeAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig">SfStateMachineExecutionTimeAlarmConfig</a>

The configuration for the ExecutionTime alarm.

---

##### `configExecutionsFailedAlarm`<sup>Optional</sup> <a name="configExecutionsFailedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.configExecutionsFailedAlarm"></a>

```typescript
public readonly configExecutionsFailedAlarm: SfStateMachineExecutionsFailedAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig">SfStateMachineExecutionsFailedAlarmConfig</a>

The configuration for the ExecutionsFailed alarm.

---

##### `configExecutionsTimedOutAlarm`<sup>Optional</sup> <a name="configExecutionsTimedOutAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.configExecutionsTimedOutAlarm"></a>

```typescript
public readonly configExecutionsTimedOutAlarm: SfStateMachineExecutionsTimedOutAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig">SfStateMachineExecutionsTimedOutAlarmConfig</a>

The configuration for the ExecutionsFailed alarm.

---

##### `configExecutionThrottledAlarm`<sup>Optional</sup> <a name="configExecutionThrottledAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.configExecutionThrottledAlarm"></a>

```typescript
public readonly configExecutionThrottledAlarm: SfStateMachineExecutionThrottledAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig">SfStateMachineExecutionThrottledAlarmConfig</a>

The configuration for the ExecutionThrottled alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: SfRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsMetrics">SfRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### SfStateMachineRecommendedAlarmsProps <a name="SfStateMachineRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps"></a>

Properties for the SfStateMachineRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.Initializer"></a>

```typescript
import { SfStateMachineRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sfStateMachineRecommendedAlarmsProps: SfStateMachineRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.configExecutionTimeAlarm">configExecutionTimeAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig">SfStateMachineExecutionTimeAlarmConfig</a></code> | The configuration for the ExecutionTime alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.configExecutionsFailedAlarm">configExecutionsFailedAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig">SfStateMachineExecutionsFailedAlarmConfig</a></code> | The configuration for the ExecutionsFailed alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.configExecutionsTimedOutAlarm">configExecutionsTimedOutAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig">SfStateMachineExecutionsTimedOutAlarmConfig</a></code> | The configuration for the ExecutionsFailed alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.configExecutionThrottledAlarm">configExecutionThrottledAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig">SfStateMachineExecutionThrottledAlarmConfig</a></code> | The configuration for the ExecutionThrottled alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsMetrics">SfRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.stateMachine">stateMachine</a></code> | <code>aws-cdk-lib.aws_stepfunctions.StateMachine</code> | The EFS StateMachine to monitor. |

---

##### `configExecutionTimeAlarm`<sup>Required</sup> <a name="configExecutionTimeAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.configExecutionTimeAlarm"></a>

```typescript
public readonly configExecutionTimeAlarm: SfStateMachineExecutionTimeAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionTimeAlarmConfig">SfStateMachineExecutionTimeAlarmConfig</a>

The configuration for the ExecutionTime alarm.

---

##### `configExecutionsFailedAlarm`<sup>Optional</sup> <a name="configExecutionsFailedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.configExecutionsFailedAlarm"></a>

```typescript
public readonly configExecutionsFailedAlarm: SfStateMachineExecutionsFailedAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsFailedAlarmConfig">SfStateMachineExecutionsFailedAlarmConfig</a>

The configuration for the ExecutionsFailed alarm.

---

##### `configExecutionsTimedOutAlarm`<sup>Optional</sup> <a name="configExecutionsTimedOutAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.configExecutionsTimedOutAlarm"></a>

```typescript
public readonly configExecutionsTimedOutAlarm: SfStateMachineExecutionsTimedOutAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionsTimedOutAlarmConfig">SfStateMachineExecutionsTimedOutAlarmConfig</a>

The configuration for the ExecutionsFailed alarm.

---

##### `configExecutionThrottledAlarm`<sup>Optional</sup> <a name="configExecutionThrottledAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.configExecutionThrottledAlarm"></a>

```typescript
public readonly configExecutionThrottledAlarm: SfStateMachineExecutionThrottledAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineExecutionThrottledAlarmConfig">SfStateMachineExecutionThrottledAlarmConfig</a>

The configuration for the ExecutionThrottled alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: SfRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsMetrics">SfRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `stateMachine`<sup>Required</sup> <a name="stateMachine" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsProps.property.stateMachine"></a>

```typescript
public readonly stateMachine: StateMachine;
```

- *Type:* aws-cdk-lib.aws_stepfunctions.StateMachine

The EFS StateMachine to monitor.

---

### SnsAlarmBaseConfig <a name="SnsAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig"></a>

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig.Initializer"></a>

```typescript
import { SnsAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsAlarmBaseConfig: SnsAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### SnsNumberOfMessagesPublishedAlarmConfig <a name="SnsNumberOfMessagesPublishedAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig"></a>

Configuration for the NumberOfMessagesPublished alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.Initializer"></a>

```typescript
import { SnsNumberOfMessagesPublishedAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsNumberOfMessagesPublishedAlarmConfig: SnsNumberOfMessagesPublishedAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistic is compared.

The number of messages published should be in line with the expected number of
published messages for your application. You can also analyze the historical data,
trends and traffic to find the right threshold.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect when the number of SNS messages published is too low. For troubleshooting, check why the publishers are sending less traffic.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* topic.topicName + ' - NumberOfMessagesPublished'

The alarm name.

---

### SnsNumberOfMessagesPublishedAlarmProps <a name="SnsNumberOfMessagesPublishedAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps"></a>

Properties for the SnsNumberOfMessagesPublishedAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.Initializer"></a>

```typescript
import { SnsNumberOfMessagesPublishedAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsNumberOfMessagesPublishedAlarmProps: SnsNumberOfMessagesPublishedAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.topic">topic</a></code> | <code>aws-cdk-lib.aws_sns.ITopic</code> | The SNS topic for which to create the alarm. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistic is compared.

The number of messages published should be in line with the expected number of
published messages for your application. You can also analyze the historical data,
trends and traffic to find the right threshold.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect when the number of SNS messages published is too low. For troubleshooting, check why the publishers are sending less traffic.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* topic.topicName + ' - NumberOfMessagesPublished'

The alarm name.

---

##### `topic`<sup>Required</sup> <a name="topic" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmProps.property.topic"></a>

```typescript
public readonly topic: ITopic;
```

- *Type:* aws-cdk-lib.aws_sns.ITopic

The SNS topic for which to create the alarm.

---

### SnsNumberOfNotificationsDeliveredAlarmConfig <a name="SnsNumberOfNotificationsDeliveredAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig"></a>

Configuration for the NumberOfNotificationsDelivered alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsDeliveredAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsNumberOfNotificationsDeliveredAlarmConfig: SnsNumberOfNotificationsDeliveredAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistic is compared.

The number of messages delivered should be in line with the expected number of
messages produced and the number of consumers. You can also analyze the historical
data, trends and traffic to find the right threshold.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect when the number of SNS messages delivered is too low. This could be because of unintentional unsubscribing of an endpoint, or because of an SNS event that causes messages to experience delay.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* topic.topicName + ' - NumberOfNotificationsDelivered'

The alarm name.

---

### SnsNumberOfNotificationsDeliveredAlarmProps <a name="SnsNumberOfNotificationsDeliveredAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps"></a>

Properties for the SnsNumberOfNotificationsDeliveredAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsDeliveredAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsNumberOfNotificationsDeliveredAlarmProps: SnsNumberOfNotificationsDeliveredAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.topic">topic</a></code> | <code>aws-cdk-lib.aws_sns.ITopic</code> | The SNS topic for which to create the alarm. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistic is compared.

The number of messages delivered should be in line with the expected number of
messages produced and the number of consumers. You can also analyze the historical
data, trends and traffic to find the right threshold.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect when the number of SNS messages delivered is too low. This could be because of unintentional unsubscribing of an endpoint, or because of an SNS event that causes messages to experience delay.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* topic.topicName + ' - NumberOfNotificationsDelivered'

The alarm name.

---

##### `topic`<sup>Required</sup> <a name="topic" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmProps.property.topic"></a>

```typescript
public readonly topic: ITopic;
```

- *Type:* aws-cdk-lib.aws_sns.ITopic

The SNS topic for which to create the alarm.

---

### SnsNumberOfNotificationsFailedAlarmConfig <a name="SnsNumberOfNotificationsFailedAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig"></a>

Configuration for the NumberOfNotificationsFailed alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsFailedAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsNumberOfNotificationsFailedAlarmConfig: SnsNumberOfNotificationsFailedAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistic is compared.

The recommended threshold value for this alarm is highly dependent on the
impact of failed notifications. Review the SLAs provided to your end users,
fault tolerance and criticality of notifications and analyze historical data,
and then select a threshold accordingly. The number of notifications failed
should be 0 for topics that have only SQS, Lambda or Firehose subscriptions.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect when the number of failed SNS messages is too high. To troubleshoot failed notifications, enable logging to CloudWatch Logs. Checking the logs can help you find which subscribers are failing, as well as the status codes they are returning.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* topic.topicName + ' - NumberOfNotificationsFailed'

The alarm name.

---

### SnsNumberOfNotificationsFailedAlarmProps <a name="SnsNumberOfNotificationsFailedAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps"></a>

Properties for the SnsNumberOfNotificationsFailedAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsFailedAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsNumberOfNotificationsFailedAlarmProps: SnsNumberOfNotificationsFailedAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.topic">topic</a></code> | <code>aws-cdk-lib.aws_sns.ITopic</code> | The SNS topic for which to create the alarm. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistic is compared.

The recommended threshold value for this alarm is highly dependent on the
impact of failed notifications. Review the SLAs provided to your end users,
fault tolerance and criticality of notifications and analyze historical data,
and then select a threshold accordingly. The number of notifications failed
should be 0 for topics that have only SQS, Lambda or Firehose subscriptions.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm can detect when the number of failed SNS messages is too high. To troubleshoot failed notifications, enable logging to CloudWatch Logs. Checking the logs can help you find which subscribers are failing, as well as the status codes they are returning.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* topic.topicName + ' - NumberOfNotificationsFailed'

The alarm name.

---

##### `topic`<sup>Required</sup> <a name="topic" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmProps.property.topic"></a>

```typescript
public readonly topic: ITopic;
```

- *Type:* aws-cdk-lib.aws_sns.ITopic

The SNS topic for which to create the alarm.

---

### SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig <a name="SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig"></a>

Configuration for the NumberOfNotificationsFailedToRedriveToDlq alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig: SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to monitor messages that couldn't be moved to a dead-letter queue. Check whether your dead-letter queue exists and that it's configured correctly. Also, verify that SNS has permissions to access the dead-letter queue. Refer to the dead-letter queue documentation (https://docs.aws.amazon.com/sns/latest/dg/sns-dead-letter-queues.html) to learn more.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* topic.topicName + ' - NumberOfNotificationsFailedToRedriveToDlq'

The alarm name.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

It's almost always a mistake if messages can't be moved to the dead-letter queue.
The recommendation for the threshold is 0, meaning all messages that fail processing
must be able to reach the dead-letter queue when the queue has been configured.

---

### SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps <a name="SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps"></a>

Properties for the SnsNumberOfNotificationsFailedToRedriveToDlqAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsNumberOfNotificationsFailedToRedriveToDlqAlarmProps: SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.topic">topic</a></code> | <code>aws-cdk-lib.aws_sns.ITopic</code> | The SNS topic for which to create the alarm. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to monitor messages that couldn't be moved to a dead-letter queue. Check whether your dead-letter queue exists and that it's configured correctly. Also, verify that SNS has permissions to access the dead-letter queue. Refer to the dead-letter queue documentation (https://docs.aws.amazon.com/sns/latest/dg/sns-dead-letter-queues.html) to learn more.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* topic.topicName + ' - NumberOfNotificationsFailedToRedriveToDlq'

The alarm name.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

It's almost always a mistake if messages can't be moved to the dead-letter queue.
The recommendation for the threshold is 0, meaning all messages that fail processing
must be able to reach the dead-letter queue when the queue has been configured.

---

##### `topic`<sup>Required</sup> <a name="topic" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmProps.property.topic"></a>

```typescript
public readonly topic: ITopic;
```

- *Type:* aws-cdk-lib.aws_sns.ITopic

The SNS topic for which to create the alarm.

---

### SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig <a name="SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig"></a>

Configuration for the NumberOfNotificationsFilteredOutInvalidAttributes alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig: SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to monitor and resolve potential problems with the publisher or subscribers. Check if a publisher is publishing messages with invalid attributes or if an inappropriate filter is applied to a subscriber. You can also analyze CloudWatch Logs to help find the root cause of the issue.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* topic.topicName + ' - NumberOfNotificationsFilteredOut-InvalidAttributes'

The alarm name.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

Invalid attributes are almost always a mistake by the publisher. We recommend
to set the threshold to 0 because invalid attributes are not expected in a
healthy system.

---

### SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps <a name="SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps"></a>

Properties for the SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps: SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.topic">topic</a></code> | <code>aws-cdk-lib.aws_sns.ITopic</code> | The SNS topic for which to create the alarm. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to monitor and resolve potential problems with the publisher or subscribers. Check if a publisher is publishing messages with invalid attributes or if an inappropriate filter is applied to a subscriber. You can also analyze CloudWatch Logs to help find the root cause of the issue.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* topic.topicName + ' - NumberOfNotificationsFilteredOut-InvalidAttributes'

The alarm name.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

Invalid attributes are almost always a mistake by the publisher. We recommend
to set the threshold to 0 because invalid attributes are not expected in a
healthy system.

---

##### `topic`<sup>Required</sup> <a name="topic" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmProps.property.topic"></a>

```typescript
public readonly topic: ITopic;
```

- *Type:* aws-cdk-lib.aws_sns.ITopic

The SNS topic for which to create the alarm.

---

### SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig <a name="SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig"></a>

Configuration for the NumberOfNotificationsFilteredOutInvalidMessageBody alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig: SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to monitor and resolve potential problems with the publisher or subscribers. Check if a publisher is publishing messages with invalid message bodies, or if an inappropriate filter is applied to a subscriber. You can also analyze CloudWatch Logs to help find the root cause of the issue.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* topic.topicName + ' - NumberOfNotificationsFilteredOut-InvalidMessageBody'

The alarm name.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

Invalid message bodies are almost always a mistake by the publisher.
We recommend to set the threshold to 0 because invalid message bodies
are not expected in a healthy system.

---

### SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps <a name="SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps"></a>

Properties for the SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps: SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.topic">topic</a></code> | <code>aws-cdk-lib.aws_sns.ITopic</code> | The SNS topic for which to create the alarm. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to monitor and resolve potential problems with the publisher or subscribers. Check if a publisher is publishing messages with invalid message bodies, or if an inappropriate filter is applied to a subscriber. You can also analyze CloudWatch Logs to help find the root cause of the issue.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* topic.topicName + ' - NumberOfNotificationsFilteredOut-InvalidMessageBody'

The alarm name.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

Invalid message bodies are almost always a mistake by the publisher.
We recommend to set the threshold to 0 because invalid message bodies
are not expected in a healthy system.

---

##### `topic`<sup>Required</sup> <a name="topic" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmProps.property.topic"></a>

```typescript
public readonly topic: ITopic;
```

- *Type:* aws-cdk-lib.aws_sns.ITopic

The SNS topic for which to create the alarm.

---

### SnsNumberOfNotificationsRedrivenToDlqAlarmConfig <a name="SnsNumberOfNotificationsRedrivenToDlqAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig"></a>

Configuration for the NumberOfNotificationsRedrivenToDlq alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsRedrivenToDlqAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsNumberOfNotificationsRedrivenToDlqAlarmConfig: SnsNumberOfNotificationsRedrivenToDlqAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to monitor the number of messages that are moved to a dead-letter queue.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* topic.topicName + ' - NumberOfNotificationsRedrivenToDlq'

The alarm name.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

In a healthy system of any subscriber type, messages should not be moved
to the dead-letter queue. We recommend that you be notified if any messages
land in the queue, so that you can identify and address the root cause,
and potentially redrive the messages in the dead-letter queue to prevent
data loss.

---

### SnsNumberOfNotificationsRedrivenToDlqAlarmProps <a name="SnsNumberOfNotificationsRedrivenToDlqAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps"></a>

Properties for the SnsNumberOfNotificationsRedrivenToDlqAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.Initializer"></a>

```typescript
import { SnsNumberOfNotificationsRedrivenToDlqAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsNumberOfNotificationsRedrivenToDlqAlarmProps: SnsNumberOfNotificationsRedrivenToDlqAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.topic">topic</a></code> | <code>aws-cdk-lib.aws_sns.ITopic</code> | The SNS topic for which to create the alarm. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 5

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 5

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to monitor the number of messages that are moved to a dead-letter queue.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* topic.topicName + ' - NumberOfNotificationsRedrivenToDlq'

The alarm name.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

In a healthy system of any subscriber type, messages should not be moved
to the dead-letter queue. We recommend that you be notified if any messages
land in the queue, so that you can identify and address the root cause,
and potentially redrive the messages in the dead-letter queue to prevent
data loss.

---

##### `topic`<sup>Required</sup> <a name="topic" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmProps.property.topic"></a>

```typescript
public readonly topic: ITopic;
```

- *Type:* aws-cdk-lib.aws_sns.ITopic

The SNS topic for which to create the alarm.

---

### SnsRecommendedAlarmsConfig <a name="SnsRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig"></a>

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { SnsRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsRecommendedAlarmsConfig: SnsRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.configNumberOfMessagesPublishedAlarm">configNumberOfMessagesPublishedAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig">SnsNumberOfMessagesPublishedAlarmConfig</a></code> | The configuration for the NumberOfMessagesPublished alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.configNumberOfNotificationsDeliveredAlarm">configNumberOfNotificationsDeliveredAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig">SnsNumberOfNotificationsDeliveredAlarmConfig</a></code> | The configuration for the NumberOfNotificationsDelivered alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.configNumberOfNotificationsFailedAlarm">configNumberOfNotificationsFailedAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig">SnsNumberOfNotificationsFailedAlarmConfig</a></code> | The configuration for the NumberOfNotificationsFailed alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.configNumberOfNotificationsFailedToRedriveToDlqAlarm">configNumberOfNotificationsFailedToRedriveToDlqAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig">SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig</a></code> | The configuration for the NumberOfNotificationsFailedToRedriveToDlq alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.configNumberOfNotificationsFilteredOutInvalidAttributesAlarm">configNumberOfNotificationsFilteredOutInvalidAttributesAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig">SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig</a></code> | The configuration for the NumberOfNotificationsFilteredOutInvalidAttributes alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.configNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm">configNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig">SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig</a></code> | The configuration for the NumberOfNotificationsFilteredOutInvalidMessageBody alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.configNumberOfNotificationsRedrivenToDlqAlarm">configNumberOfNotificationsRedrivenToDlqAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig">SnsNumberOfNotificationsRedrivenToDlqAlarmConfig</a></code> | The configuration for the NumberOfNotificationsRedrivenToDlq alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics">SnsRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configNumberOfMessagesPublishedAlarm`<sup>Required</sup> <a name="configNumberOfMessagesPublishedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.configNumberOfMessagesPublishedAlarm"></a>

```typescript
public readonly configNumberOfMessagesPublishedAlarm: SnsNumberOfMessagesPublishedAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig">SnsNumberOfMessagesPublishedAlarmConfig</a>

The configuration for the NumberOfMessagesPublished alarm.

---

##### `configNumberOfNotificationsDeliveredAlarm`<sup>Required</sup> <a name="configNumberOfNotificationsDeliveredAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.configNumberOfNotificationsDeliveredAlarm"></a>

```typescript
public readonly configNumberOfNotificationsDeliveredAlarm: SnsNumberOfNotificationsDeliveredAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig">SnsNumberOfNotificationsDeliveredAlarmConfig</a>

The configuration for the NumberOfNotificationsDelivered alarm.

---

##### `configNumberOfNotificationsFailedAlarm`<sup>Required</sup> <a name="configNumberOfNotificationsFailedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.configNumberOfNotificationsFailedAlarm"></a>

```typescript
public readonly configNumberOfNotificationsFailedAlarm: SnsNumberOfNotificationsFailedAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig">SnsNumberOfNotificationsFailedAlarmConfig</a>

The configuration for the NumberOfNotificationsFailed alarm.

---

##### `configNumberOfNotificationsFailedToRedriveToDlqAlarm`<sup>Optional</sup> <a name="configNumberOfNotificationsFailedToRedriveToDlqAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.configNumberOfNotificationsFailedToRedriveToDlqAlarm"></a>

```typescript
public readonly configNumberOfNotificationsFailedToRedriveToDlqAlarm: SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig">SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig</a>

The configuration for the NumberOfNotificationsFailedToRedriveToDlq alarm.

---

##### `configNumberOfNotificationsFilteredOutInvalidAttributesAlarm`<sup>Optional</sup> <a name="configNumberOfNotificationsFilteredOutInvalidAttributesAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.configNumberOfNotificationsFilteredOutInvalidAttributesAlarm"></a>

```typescript
public readonly configNumberOfNotificationsFilteredOutInvalidAttributesAlarm: SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig">SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig</a>

The configuration for the NumberOfNotificationsFilteredOutInvalidAttributes alarm.

---

##### `configNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm`<sup>Optional</sup> <a name="configNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.configNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm"></a>

```typescript
public readonly configNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm: SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig">SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig</a>

The configuration for the NumberOfNotificationsFilteredOutInvalidMessageBody alarm.

---

##### `configNumberOfNotificationsRedrivenToDlqAlarm`<sup>Optional</sup> <a name="configNumberOfNotificationsRedrivenToDlqAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.configNumberOfNotificationsRedrivenToDlqAlarm"></a>

```typescript
public readonly configNumberOfNotificationsRedrivenToDlqAlarm: SnsNumberOfNotificationsRedrivenToDlqAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig">SnsNumberOfNotificationsRedrivenToDlqAlarmConfig</a>

The configuration for the NumberOfNotificationsRedrivenToDlq alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: SnsRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics">SnsRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### SnsRecommendedAlarmsProps <a name="SnsRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps"></a>

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.Initializer"></a>

```typescript
import { SnsRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const snsRecommendedAlarmsProps: SnsRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.configNumberOfMessagesPublishedAlarm">configNumberOfMessagesPublishedAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig">SnsNumberOfMessagesPublishedAlarmConfig</a></code> | The configuration for the NumberOfMessagesPublished alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.configNumberOfNotificationsDeliveredAlarm">configNumberOfNotificationsDeliveredAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig">SnsNumberOfNotificationsDeliveredAlarmConfig</a></code> | The configuration for the NumberOfNotificationsDelivered alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.configNumberOfNotificationsFailedAlarm">configNumberOfNotificationsFailedAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig">SnsNumberOfNotificationsFailedAlarmConfig</a></code> | The configuration for the NumberOfNotificationsFailed alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.configNumberOfNotificationsFailedToRedriveToDlqAlarm">configNumberOfNotificationsFailedToRedriveToDlqAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig">SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig</a></code> | The configuration for the NumberOfNotificationsFailedToRedriveToDlq alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.configNumberOfNotificationsFilteredOutInvalidAttributesAlarm">configNumberOfNotificationsFilteredOutInvalidAttributesAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig">SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig</a></code> | The configuration for the NumberOfNotificationsFilteredOutInvalidAttributes alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.configNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm">configNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig">SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig</a></code> | The configuration for the NumberOfNotificationsFilteredOutInvalidMessageBody alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.configNumberOfNotificationsRedrivenToDlqAlarm">configNumberOfNotificationsRedrivenToDlqAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig">SnsNumberOfNotificationsRedrivenToDlqAlarmConfig</a></code> | The configuration for the NumberOfNotificationsRedrivenToDlq alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics">SnsRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.topic">topic</a></code> | <code>aws-cdk-lib.aws_sns.ITopic</code> | The SNS topic for which to create the alarms. |

---

##### `configNumberOfMessagesPublishedAlarm`<sup>Required</sup> <a name="configNumberOfMessagesPublishedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.configNumberOfMessagesPublishedAlarm"></a>

```typescript
public readonly configNumberOfMessagesPublishedAlarm: SnsNumberOfMessagesPublishedAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfMessagesPublishedAlarmConfig">SnsNumberOfMessagesPublishedAlarmConfig</a>

The configuration for the NumberOfMessagesPublished alarm.

---

##### `configNumberOfNotificationsDeliveredAlarm`<sup>Required</sup> <a name="configNumberOfNotificationsDeliveredAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.configNumberOfNotificationsDeliveredAlarm"></a>

```typescript
public readonly configNumberOfNotificationsDeliveredAlarm: SnsNumberOfNotificationsDeliveredAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsDeliveredAlarmConfig">SnsNumberOfNotificationsDeliveredAlarmConfig</a>

The configuration for the NumberOfNotificationsDelivered alarm.

---

##### `configNumberOfNotificationsFailedAlarm`<sup>Required</sup> <a name="configNumberOfNotificationsFailedAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.configNumberOfNotificationsFailedAlarm"></a>

```typescript
public readonly configNumberOfNotificationsFailedAlarm: SnsNumberOfNotificationsFailedAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedAlarmConfig">SnsNumberOfNotificationsFailedAlarmConfig</a>

The configuration for the NumberOfNotificationsFailed alarm.

---

##### `configNumberOfNotificationsFailedToRedriveToDlqAlarm`<sup>Optional</sup> <a name="configNumberOfNotificationsFailedToRedriveToDlqAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.configNumberOfNotificationsFailedToRedriveToDlqAlarm"></a>

```typescript
public readonly configNumberOfNotificationsFailedToRedriveToDlqAlarm: SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig">SnsNumberOfNotificationsFailedToRedriveToDlqAlarmConfig</a>

The configuration for the NumberOfNotificationsFailedToRedriveToDlq alarm.

---

##### `configNumberOfNotificationsFilteredOutInvalidAttributesAlarm`<sup>Optional</sup> <a name="configNumberOfNotificationsFilteredOutInvalidAttributesAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.configNumberOfNotificationsFilteredOutInvalidAttributesAlarm"></a>

```typescript
public readonly configNumberOfNotificationsFilteredOutInvalidAttributesAlarm: SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig">SnsNumberOfNotificationsFilteredOutInvalidAttributesAlarmConfig</a>

The configuration for the NumberOfNotificationsFilteredOutInvalidAttributes alarm.

---

##### `configNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm`<sup>Optional</sup> <a name="configNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.configNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm"></a>

```typescript
public readonly configNumberOfNotificationsFilteredOutInvalidMessageBodyAlarm: SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig">SnsNumberOfNotificationsFilteredOutInvalidMessageBodyAlarmConfig</a>

The configuration for the NumberOfNotificationsFilteredOutInvalidMessageBody alarm.

---

##### `configNumberOfNotificationsRedrivenToDlqAlarm`<sup>Optional</sup> <a name="configNumberOfNotificationsRedrivenToDlqAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.configNumberOfNotificationsRedrivenToDlqAlarm"></a>

```typescript
public readonly configNumberOfNotificationsRedrivenToDlqAlarm: SnsNumberOfNotificationsRedrivenToDlqAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsNumberOfNotificationsRedrivenToDlqAlarmConfig">SnsNumberOfNotificationsRedrivenToDlqAlarmConfig</a>

The configuration for the NumberOfNotificationsRedrivenToDlq alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: SnsRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics">SnsRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `topic`<sup>Required</sup> <a name="topic" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsProps.property.topic"></a>

```typescript
public readonly topic: ITopic;
```

- *Type:* aws-cdk-lib.aws_sns.ITopic

The SNS topic for which to create the alarms.

---

### SqsAlarmBaseConfig <a name="SqsAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig"></a>

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig.Initializer"></a>

```typescript
import { SqsAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sqsAlarmBaseConfig: SqsAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

### SqsApproximateAgeOfOldestMessageAlarmConfig <a name="SqsApproximateAgeOfOldestMessageAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig"></a>

Configuration for the ApproximateAgeOfOldestMessage alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.Initializer"></a>

```typescript
import { SqsApproximateAgeOfOldestMessageAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sqsApproximateAgeOfOldestMessageAlarmConfig: SqsApproximateAgeOfOldestMessageAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistic is compared.

The recommended threshold value for this alarm is highly dependent on the expected message
processing time. You can use historical data to calculate the average message processing time,
and then set the threshold to 50% higher than the maximum expected SQS message processing
time by queue consumers.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm watches the age of the oldest message in the queue. You can use this alarm to monitor if your consumers are processing SQS messages at the desired speed. Consider increasing the consumer count or consumer throughput to reduce message age. This metric can be used in combination with ApproximateNumberOfMessagesVisible to determine how big the queue backlog is and how quickly messages are being processed. To prevent messages from being deleted before processed, consider configuring the dead-letter queue to sideline potential poison pill messages.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* queue.queueName + ' - ApproximateAgeOfOldestMessage'

The alarm name.

---

### SqsApproximateAgeOfOldestMessageAlarmProps <a name="SqsApproximateAgeOfOldestMessageAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps"></a>

Properties for the SqsApproximateAgeOfOldestMessageAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.Initializer"></a>

```typescript
import { SqsApproximateAgeOfOldestMessageAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sqsApproximateAgeOfOldestMessageAlarmProps: SqsApproximateAgeOfOldestMessageAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.queue">queue</a></code> | <code>aws-cdk-lib.aws_sqs.IQueue</code> | The SQS queue for which to create the alarm. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistic is compared.

The recommended threshold value for this alarm is highly dependent on the expected message
processing time. You can use historical data to calculate the average message processing time,
and then set the threshold to 50% higher than the maximum expected SQS message processing
time by queue consumers.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm watches the age of the oldest message in the queue. You can use this alarm to monitor if your consumers are processing SQS messages at the desired speed. Consider increasing the consumer count or consumer throughput to reduce message age. This metric can be used in combination with ApproximateNumberOfMessagesVisible to determine how big the queue backlog is and how quickly messages are being processed. To prevent messages from being deleted before processed, consider configuring the dead-letter queue to sideline potential poison pill messages.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* queue.queueName + ' - ApproximateAgeOfOldestMessage'

The alarm name.

---

##### `queue`<sup>Required</sup> <a name="queue" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmProps.property.queue"></a>

```typescript
public readonly queue: IQueue;
```

- *Type:* aws-cdk-lib.aws_sqs.IQueue

The SQS queue for which to create the alarm.

---

### SqsApproximateNumberOfMessagesNotVisibleAlarmConfig <a name="SqsApproximateNumberOfMessagesNotVisibleAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig"></a>

Configuration for the ApproximateNumberOfMessagesNotVisible alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.Initializer"></a>

```typescript
import { SqsApproximateNumberOfMessagesNotVisibleAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sqsApproximateNumberOfMessagesNotVisibleAlarmConfig: SqsApproximateNumberOfMessagesNotVisibleAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistic is compared.

The recommended threshold value for this alarm is highly dependent on the expected number
of messages in flight. You can use historical data to calculate the maximum expected
number of messages in flight and set the threshold to 50% over this value. If consumers
of the queue are processing but not deleting messages from the queue, this number will
suddenly increase.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to detect a high number of in-flight messages with respect to QueueName. For troubleshooting, check message backlog decreasing (https://repost.aws/knowledge-center/sqs-message-backlog).

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* queue.queueName + ' - ApproximateNumberOfMessagesNotVisible'

The alarm name.

---

### SqsApproximateNumberOfMessagesNotVisibleAlarmProps <a name="SqsApproximateNumberOfMessagesNotVisibleAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps"></a>

Properties for the SqsApproximateNumberOfMessagesNotVisibleAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.Initializer"></a>

```typescript
import { SqsApproximateNumberOfMessagesNotVisibleAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sqsApproximateNumberOfMessagesNotVisibleAlarmProps: SqsApproximateNumberOfMessagesNotVisibleAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.queue">queue</a></code> | <code>aws-cdk-lib.aws_sqs.IQueue</code> | The SQS queue for which to create the alarm. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistic is compared.

The recommended threshold value for this alarm is highly dependent on the expected number
of messages in flight. You can use historical data to calculate the maximum expected
number of messages in flight and set the threshold to 50% over this value. If consumers
of the queue are processing but not deleting messages from the queue, this number will
suddenly increase.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to detect a high number of in-flight messages with respect to QueueName. For troubleshooting, check message backlog decreasing (https://repost.aws/knowledge-center/sqs-message-backlog).

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* queue.queueName + ' - ApproximateNumberOfMessagesNotVisible'

The alarm name.

---

##### `queue`<sup>Required</sup> <a name="queue" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmProps.property.queue"></a>

```typescript
public readonly queue: IQueue;
```

- *Type:* aws-cdk-lib.aws_sqs.IQueue

The SQS queue for which to create the alarm.

---

### SqsApproximateNumberOfMessagesVisibleAlarmConfig <a name="SqsApproximateNumberOfMessagesVisibleAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig"></a>

Configuration for the ApproximateNumberOfMessagesVisible alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.Initializer"></a>

```typescript
import { SqsApproximateNumberOfMessagesVisibleAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sqsApproximateNumberOfMessagesVisibleAlarmConfig: SqsApproximateNumberOfMessagesVisibleAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistic is compared.

An unexpectedly high number of messages visible indicates that messages are not being
processed by a consumer at the expected rate. You should consider historical data when
you set this threshold.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to detect a high number of in-flight messages with respect to QueueName. For troubleshooting, check message backlog decreasing (https://repost.aws/knowledge-center/sqs-message-backlog).

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* queue.queueName + ' - ApproximateNumberOfMessagesVisible'

The alarm name.

---

### SqsApproximateNumberOfMessagesVisibleAlarmProps <a name="SqsApproximateNumberOfMessagesVisibleAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps"></a>

Properties for the SqsApproximateNumberOfMessagesVisibleAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.Initializer"></a>

```typescript
import { SqsApproximateNumberOfMessagesVisibleAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sqsApproximateNumberOfMessagesVisibleAlarmProps: SqsApproximateNumberOfMessagesVisibleAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.queue">queue</a></code> | <code>aws-cdk-lib.aws_sqs.IQueue</code> | The SQS queue for which to create the alarm. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `threshold`<sup>Required</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number

The value against which the specified statistic is compared.

An unexpectedly high number of messages visible indicates that messages are not being
processed by a consumer at the expected rate. You should consider historical data when
you set this threshold.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to detect a high number of in-flight messages with respect to QueueName. For troubleshooting, check message backlog decreasing (https://repost.aws/knowledge-center/sqs-message-backlog).

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* queue.queueName + ' - ApproximateNumberOfMessagesVisible'

The alarm name.

---

##### `queue`<sup>Required</sup> <a name="queue" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmProps.property.queue"></a>

```typescript
public readonly queue: IQueue;
```

- *Type:* aws-cdk-lib.aws_sqs.IQueue

The SQS queue for which to create the alarm.

---

### SqsNumberOfMessagesSentAlarmConfig <a name="SqsNumberOfMessagesSentAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig"></a>

Configuration for the NumberOfMessagesSent alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.Initializer"></a>

```typescript
import { SqsNumberOfMessagesSentAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sqsNumberOfMessagesSentAlarmConfig: SqsNumberOfMessagesSentAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to detect a high number of in-flight messages with respect to QueueName. For troubleshooting, check message backlog decreasing (https://repost.aws/knowledge-center/sqs-message-backlog).

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* queue.queueName + ' - NumberOfMessagesSent'

The alarm name.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

If the number of messages sent is 0, the producer is not sending any messages.
If this queue has a low TPS, increase the number of EvaluationPeriods accordingly.

---

### SqsNumberOfMessagesSentAlarmProps <a name="SqsNumberOfMessagesSentAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps"></a>

Properties for the SqsNumberOfMessagesSentAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.Initializer"></a>

```typescript
import { SqsNumberOfMessagesSentAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sqsNumberOfMessagesSentAlarmProps: SqsNumberOfMessagesSentAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.queue">queue</a></code> | <code>aws-cdk-lib.aws_sqs.IQueue</code> | The SQS queue for which to create the alarm. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 15

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 15

The number of periods over which data is compared to the specified threshold.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(1)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm helps to detect a high number of in-flight messages with respect to QueueName. For troubleshooting, check message backlog decreasing (https://repost.aws/knowledge-center/sqs-message-backlog).

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* queue.queueName + ' - NumberOfMessagesSent'

The alarm name.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 0

The value against which the specified statistic is compared.

If the number of messages sent is 0, the producer is not sending any messages.
If this queue has a low TPS, increase the number of EvaluationPeriods accordingly.

---

##### `queue`<sup>Required</sup> <a name="queue" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmProps.property.queue"></a>

```typescript
public readonly queue: IQueue;
```

- *Type:* aws-cdk-lib.aws_sqs.IQueue

The SQS queue for which to create the alarm.

---

### SqsRecommendedAlarmsConfig <a name="SqsRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig"></a>

Configuration for the recommended alarms for an SQS queue.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { SqsRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sqsRecommendedAlarmsConfig: SqsRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.configApproximateAgeOfOldestMessageAlarm">configApproximateAgeOfOldestMessageAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig">SqsApproximateAgeOfOldestMessageAlarmConfig</a></code> | The configuration for the approximate age of oldest message alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.configApproximateNumberOfMessagesNotVisibleAlarm">configApproximateNumberOfMessagesNotVisibleAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig">SqsApproximateNumberOfMessagesNotVisibleAlarmConfig</a></code> | The configuration for the approximate number of messages not visible alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.configApproximateNumberOfMessagesVisibleAlarm">configApproximateNumberOfMessagesVisibleAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig">SqsApproximateNumberOfMessagesVisibleAlarmConfig</a></code> | The configuration for the approximate number of messages visible alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.configDlqApproximateNumberOfMessagesVisibleAlarm">configDlqApproximateNumberOfMessagesVisibleAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig">SqsApproximateNumberOfMessagesVisibleAlarmConfig</a></code> | The configuration for the approximate number of messages visible alarm for DLQs. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.configNumberOfMessagesSentAlarm">configNumberOfMessagesSentAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig">SqsNumberOfMessagesSentAlarmConfig</a></code> | The configuration for the number of messages sent alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.dlqsGetFullRecommendedAlarms">dlqsGetFullRecommendedAlarms</a></code> | <code>boolean</code> | Whether to apply the usual recommended alarms to dead letter queues. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsMetrics">SqsRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configApproximateAgeOfOldestMessageAlarm`<sup>Required</sup> <a name="configApproximateAgeOfOldestMessageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.configApproximateAgeOfOldestMessageAlarm"></a>

```typescript
public readonly configApproximateAgeOfOldestMessageAlarm: SqsApproximateAgeOfOldestMessageAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig">SqsApproximateAgeOfOldestMessageAlarmConfig</a>

The configuration for the approximate age of oldest message alarm.

---

##### `configApproximateNumberOfMessagesNotVisibleAlarm`<sup>Required</sup> <a name="configApproximateNumberOfMessagesNotVisibleAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.configApproximateNumberOfMessagesNotVisibleAlarm"></a>

```typescript
public readonly configApproximateNumberOfMessagesNotVisibleAlarm: SqsApproximateNumberOfMessagesNotVisibleAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig">SqsApproximateNumberOfMessagesNotVisibleAlarmConfig</a>

The configuration for the approximate number of messages not visible alarm.

---

##### `configApproximateNumberOfMessagesVisibleAlarm`<sup>Required</sup> <a name="configApproximateNumberOfMessagesVisibleAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.configApproximateNumberOfMessagesVisibleAlarm"></a>

```typescript
public readonly configApproximateNumberOfMessagesVisibleAlarm: SqsApproximateNumberOfMessagesVisibleAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig">SqsApproximateNumberOfMessagesVisibleAlarmConfig</a>

The configuration for the approximate number of messages visible alarm.

---

##### `configDlqApproximateNumberOfMessagesVisibleAlarm`<sup>Optional</sup> <a name="configDlqApproximateNumberOfMessagesVisibleAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.configDlqApproximateNumberOfMessagesVisibleAlarm"></a>

```typescript
public readonly configDlqApproximateNumberOfMessagesVisibleAlarm: SqsApproximateNumberOfMessagesVisibleAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig">SqsApproximateNumberOfMessagesVisibleAlarmConfig</a>

The configuration for the approximate number of messages visible alarm for DLQs.

This is used for dead letter queues only. The threshold is set to 1 by default.

---

##### `configNumberOfMessagesSentAlarm`<sup>Optional</sup> <a name="configNumberOfMessagesSentAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.configNumberOfMessagesSentAlarm"></a>

```typescript
public readonly configNumberOfMessagesSentAlarm: SqsNumberOfMessagesSentAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig">SqsNumberOfMessagesSentAlarmConfig</a>

The configuration for the number of messages sent alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `dlqsGetFullRecommendedAlarms`<sup>Optional</sup> <a name="dlqsGetFullRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.dlqsGetFullRecommendedAlarms"></a>

```typescript
public readonly dlqsGetFullRecommendedAlarms: boolean;
```

- *Type:* boolean
- *Default:* false

Whether to apply the usual recommended alarms to dead letter queues.

If true, the dead letter queues will have the same alarms as normal queues.
If false, the dead letter queues will only have the ApproximateNumberOfMessagesVisible
alarm with a default threshold of 1.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: SqsRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsMetrics">SqsRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### SqsRecommendedAlarmsProps <a name="SqsRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps"></a>

Properties for the SqsRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.Initializer"></a>

```typescript
import { SqsRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const sqsRecommendedAlarmsProps: SqsRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.configApproximateAgeOfOldestMessageAlarm">configApproximateAgeOfOldestMessageAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig">SqsApproximateAgeOfOldestMessageAlarmConfig</a></code> | The configuration for the approximate age of oldest message alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.configApproximateNumberOfMessagesNotVisibleAlarm">configApproximateNumberOfMessagesNotVisibleAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig">SqsApproximateNumberOfMessagesNotVisibleAlarmConfig</a></code> | The configuration for the approximate number of messages not visible alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.configApproximateNumberOfMessagesVisibleAlarm">configApproximateNumberOfMessagesVisibleAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig">SqsApproximateNumberOfMessagesVisibleAlarmConfig</a></code> | The configuration for the approximate number of messages visible alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.configDlqApproximateNumberOfMessagesVisibleAlarm">configDlqApproximateNumberOfMessagesVisibleAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig">SqsApproximateNumberOfMessagesVisibleAlarmConfig</a></code> | The configuration for the approximate number of messages visible alarm for DLQs. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.configNumberOfMessagesSentAlarm">configNumberOfMessagesSentAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig">SqsNumberOfMessagesSentAlarmConfig</a></code> | The configuration for the number of messages sent alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.dlqsGetFullRecommendedAlarms">dlqsGetFullRecommendedAlarms</a></code> | <code>boolean</code> | Whether to apply the usual recommended alarms to dead letter queues. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsMetrics">SqsRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.queue">queue</a></code> | <code>aws-cdk-lib.aws_sqs.IQueue</code> | The SQS queue for which to create the alarms. |

---

##### `configApproximateAgeOfOldestMessageAlarm`<sup>Required</sup> <a name="configApproximateAgeOfOldestMessageAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.configApproximateAgeOfOldestMessageAlarm"></a>

```typescript
public readonly configApproximateAgeOfOldestMessageAlarm: SqsApproximateAgeOfOldestMessageAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateAgeOfOldestMessageAlarmConfig">SqsApproximateAgeOfOldestMessageAlarmConfig</a>

The configuration for the approximate age of oldest message alarm.

---

##### `configApproximateNumberOfMessagesNotVisibleAlarm`<sup>Required</sup> <a name="configApproximateNumberOfMessagesNotVisibleAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.configApproximateNumberOfMessagesNotVisibleAlarm"></a>

```typescript
public readonly configApproximateNumberOfMessagesNotVisibleAlarm: SqsApproximateNumberOfMessagesNotVisibleAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesNotVisibleAlarmConfig">SqsApproximateNumberOfMessagesNotVisibleAlarmConfig</a>

The configuration for the approximate number of messages not visible alarm.

---

##### `configApproximateNumberOfMessagesVisibleAlarm`<sup>Required</sup> <a name="configApproximateNumberOfMessagesVisibleAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.configApproximateNumberOfMessagesVisibleAlarm"></a>

```typescript
public readonly configApproximateNumberOfMessagesVisibleAlarm: SqsApproximateNumberOfMessagesVisibleAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig">SqsApproximateNumberOfMessagesVisibleAlarmConfig</a>

The configuration for the approximate number of messages visible alarm.

---

##### `configDlqApproximateNumberOfMessagesVisibleAlarm`<sup>Optional</sup> <a name="configDlqApproximateNumberOfMessagesVisibleAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.configDlqApproximateNumberOfMessagesVisibleAlarm"></a>

```typescript
public readonly configDlqApproximateNumberOfMessagesVisibleAlarm: SqsApproximateNumberOfMessagesVisibleAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsApproximateNumberOfMessagesVisibleAlarmConfig">SqsApproximateNumberOfMessagesVisibleAlarmConfig</a>

The configuration for the approximate number of messages visible alarm for DLQs.

This is used for dead letter queues only. The threshold is set to 1 by default.

---

##### `configNumberOfMessagesSentAlarm`<sup>Optional</sup> <a name="configNumberOfMessagesSentAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.configNumberOfMessagesSentAlarm"></a>

```typescript
public readonly configNumberOfMessagesSentAlarm: SqsNumberOfMessagesSentAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsNumberOfMessagesSentAlarmConfig">SqsNumberOfMessagesSentAlarmConfig</a>

The configuration for the number of messages sent alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `dlqsGetFullRecommendedAlarms`<sup>Optional</sup> <a name="dlqsGetFullRecommendedAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.dlqsGetFullRecommendedAlarms"></a>

```typescript
public readonly dlqsGetFullRecommendedAlarms: boolean;
```

- *Type:* boolean
- *Default:* false

Whether to apply the usual recommended alarms to dead letter queues.

If true, the dead letter queues will have the same alarms as normal queues.
If false, the dead letter queues will only have the ApproximateNumberOfMessagesVisible
alarm with a default threshold of 1.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: SqsRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsMetrics">SqsRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `queue`<sup>Required</sup> <a name="queue" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsProps.property.queue"></a>

```typescript
public readonly queue: IQueue;
```

- *Type:* aws-cdk-lib.aws_sqs.IQueue

The SQS queue for which to create the alarms.

---

### VpnAlarmBaseConfig <a name="VpnAlarmBaseConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnAlarmBaseConfig"></a>

The common optional configuration for the alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnAlarmBaseConfig.Initializer"></a>

```typescript
import { VpnAlarmBaseConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const vpnAlarmBaseConfig: VpnAlarmBaseConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnAlarmBaseConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnAlarmBaseConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnAlarmBaseConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnAlarmBaseConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnAlarmBaseConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnAlarmBaseConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnAlarmBaseConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnAlarmBaseConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnAlarmBaseConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnAlarmBaseConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(5)

The period over which the specified statistic is applied.

---

### VpnConnectionAlarmProps <a name="VpnConnectionAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionAlarmProps"></a>

The common properties for the VpnConnection alarms.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionAlarmProps.Initializer"></a>

```typescript
import { VpnConnectionAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const vpnConnectionAlarmProps: VpnConnectionAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionAlarmProps.property.vpnConnection">vpnConnection</a></code> | <code>aws-cdk-lib.aws_ec2.CfnVPNConnection</code> | The VpnConnection to monitor. |

---

##### `vpnConnection`<sup>Required</sup> <a name="vpnConnection" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionAlarmProps.property.vpnConnection"></a>

```typescript
public readonly vpnConnection: CfnVPNConnection;
```

- *Type:* aws-cdk-lib.aws_ec2.CfnVPNConnection

The VpnConnection to monitor.

---

### VpnConnectionRecommendedAlarmsConfig <a name="VpnConnectionRecommendedAlarmsConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig"></a>

Configurations for the recommended alarms for an VPN Service.

Default actions are overridden by the actions specified in the
individual alarm configurations.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig.Initializer"></a>

```typescript
import { VpnConnectionRecommendedAlarmsConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const vpnConnectionRecommendedAlarmsConfig: VpnConnectionRecommendedAlarmsConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig.property.configTunnelStateAlarm">configTunnelStateAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig">VpnTunnelStateAlarmConfig</a></code> | The configuration for the TunnelState alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnRecommendedAlarmsMetrics">VpnRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |

---

##### `configTunnelStateAlarm`<sup>Optional</sup> <a name="configTunnelStateAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig.property.configTunnelStateAlarm"></a>

```typescript
public readonly configTunnelStateAlarm: VpnTunnelStateAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig">VpnTunnelStateAlarmConfig</a>

The configuration for the TunnelState alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: VpnRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnRecommendedAlarmsMetrics">VpnRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

### VpnConnectionRecommendedAlarmsProps <a name="VpnConnectionRecommendedAlarmsProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps"></a>

Properties for the VpnConnectionRecommendedAlarms construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.Initializer"></a>

```typescript
import { VpnConnectionRecommendedAlarmsProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const vpnConnectionRecommendedAlarmsProps: VpnConnectionRecommendedAlarmsProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.configTunnelStateAlarm">configTunnelStateAlarm</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig">VpnTunnelStateAlarmConfig</a></code> | The configuration for the TunnelState alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.defaultAlarmAction">defaultAlarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.defaultInsufficientDataAction">defaultInsufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.defaultOkAction">defaultOkAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The default action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.excludeAlarms">excludeAlarms</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnRecommendedAlarmsMetrics">VpnRecommendedAlarmsMetrics</a>[]</code> | Alarm metrics to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.excludeResources">excludeResources</a></code> | <code>string[]</code> | The resources to exclude from the recommended alarms. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.vpnConnection">vpnConnection</a></code> | <code>aws-cdk-lib.aws_ec2.CfnVPNConnection</code> | The VpnConnection to monitor. |

---

##### `configTunnelStateAlarm`<sup>Optional</sup> <a name="configTunnelStateAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.configTunnelStateAlarm"></a>

```typescript
public readonly configTunnelStateAlarm: VpnTunnelStateAlarmConfig;
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig">VpnTunnelStateAlarmConfig</a>

The configuration for the TunnelState alarm.

---

##### `defaultAlarmAction`<sup>Optional</sup> <a name="defaultAlarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.defaultAlarmAction"></a>

```typescript
public readonly defaultAlarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm is triggered.

---

##### `defaultInsufficientDataAction`<sup>Optional</sup> <a name="defaultInsufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.defaultInsufficientDataAction"></a>

```typescript
public readonly defaultInsufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm has insufficient data.

---

##### `defaultOkAction`<sup>Optional</sup> <a name="defaultOkAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.defaultOkAction"></a>

```typescript
public readonly defaultOkAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The default action to take when an alarm enters the ok state.

---

##### `excludeAlarms`<sup>Optional</sup> <a name="excludeAlarms" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.excludeAlarms"></a>

```typescript
public readonly excludeAlarms: VpnRecommendedAlarmsMetrics[];
```

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnRecommendedAlarmsMetrics">VpnRecommendedAlarmsMetrics</a>[]
- *Default:* None

Alarm metrics to exclude from the recommended alarms.

---

##### `excludeResources`<sup>Optional</sup> <a name="excludeResources" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.excludeResources"></a>

```typescript
public readonly excludeResources: string[];
```

- *Type:* string[]

The resources to exclude from the recommended alarms.

Use a resources id to exclude a specific resource.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `vpnConnection`<sup>Required</sup> <a name="vpnConnection" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsProps.property.vpnConnection"></a>

```typescript
public readonly vpnConnection: CfnVPNConnection;
```

- *Type:* aws-cdk-lib.aws_ec2.CfnVPNConnection

The VpnConnection to monitor.

---

### VpnConnectionTunnelStateAlarmProps <a name="VpnConnectionTunnelStateAlarmProps" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps"></a>

The properties for the VpnConnectionTunnelStateAlarm construct.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.Initializer"></a>

```typescript
import { VpnConnectionTunnelStateAlarmProps } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const vpnConnectionTunnelStateAlarmProps: VpnConnectionTunnelStateAlarmProps = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.vpnConnection">vpnConnection</a></code> | <code>aws-cdk-lib.aws_ec2.CfnVPNConnection</code> | The VpnConnection to monitor. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | A value less than 1 indicates that at least one tunnel is in DOWN state. |

---

##### `vpnConnection`<sup>Required</sup> <a name="vpnConnection" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.vpnConnection"></a>

```typescript
public readonly vpnConnection: CfnVPNConnection;
```

- *Type:* aws-cdk-lib.aws_ec2.CfnVPNConnection

The VpnConnection to monitor.

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(5)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect if at least one tunnel is in the DOWN state for this VPN, so that you can troubleshoot the impacted VPN. This alarm will always be in the ALARM state for networks that only have a single tunnel configured.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* vpnConnectionId + ' - TunnelState'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionTunnelStateAlarmProps.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 1

A value less than 1 indicates that at least one tunnel is in DOWN state.

---

### VpnTunnelStateAlarmConfig <a name="VpnTunnelStateAlarmConfig" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig"></a>

Configuration for the TunnelState alarm.

#### Initializer <a name="Initializer" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.Initializer"></a>

```typescript
import { VpnTunnelStateAlarmConfig } from '@renovosolutions/cdk-library-cloudwatch-alarms'

const vpnTunnelStateAlarmConfig: VpnTunnelStateAlarmConfig = { ... }
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.alarmAction">alarmAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm is triggered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.insufficientDataAction">insufficientDataAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm has insufficient data. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.okAction">okAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The action to take when an alarm enters the ok state. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | How to handle missing data for this alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.period">period</a></code> | <code>aws-cdk-lib.Duration</code> | The period over which the specified statistic is applied. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.alarmDescription">alarmDescription</a></code> | <code>string</code> | The description of the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.alarmName">alarmName</a></code> | <code>string</code> | The alarm name. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.datapointsToAlarm">datapointsToAlarm</a></code> | <code>number</code> | The number of data points that must be breaching to trigger the alarm. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.threshold">threshold</a></code> | <code>number</code> | A value less than 1 indicates that at least one tunnel is in DOWN state. |

---

##### `alarmAction`<sup>Optional</sup> <a name="alarmAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.alarmAction"></a>

```typescript
public readonly alarmAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm is triggered.

---

##### `insufficientDataAction`<sup>Optional</sup> <a name="insufficientDataAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.insufficientDataAction"></a>

```typescript
public readonly insufficientDataAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm has insufficient data.

---

##### `okAction`<sup>Optional</sup> <a name="okAction" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.okAction"></a>

```typescript
public readonly okAction: IAlarmAction;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* None

The action to take when an alarm enters the ok state.

---

##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.treatMissingData"></a>

```typescript
public readonly treatMissingData: TreatMissingData;
```

- *Type:* aws-cdk-lib.aws_cloudwatch.TreatMissingData
- *Default:* TreatMissingData.MISSING

How to handle missing data for this alarm.

---

##### `period`<sup>Optional</sup> <a name="period" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.period"></a>

```typescript
public readonly period: Duration;
```

- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.minutes(5)

The period over which the specified statistic is applied.

---

##### `alarmDescription`<sup>Optional</sup> <a name="alarmDescription" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.alarmDescription"></a>

```typescript
public readonly alarmDescription: string;
```

- *Type:* string
- *Default:* This alarm is used to detect if at least one tunnel is in the DOWN state for this VPN, so that you can troubleshoot the impacted VPN. This alarm will always be in the ALARM state for networks that only have a single tunnel configured.

The description of the alarm.

---

##### `alarmName`<sup>Optional</sup> <a name="alarmName" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.alarmName"></a>

```typescript
public readonly alarmName: string;
```

- *Type:* string
- *Default:* vpnConnectionId + ' - TunnelState'

The alarm name.

---

##### `datapointsToAlarm`<sup>Optional</sup> <a name="datapointsToAlarm" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.datapointsToAlarm"></a>

```typescript
public readonly datapointsToAlarm: number;
```

- *Type:* number
- *Default:* 3

The number of data points that must be breaching to trigger the alarm.

---

##### `evaluationPeriods`<sup>Optional</sup> <a name="evaluationPeriods" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.evaluationPeriods"></a>

```typescript
public readonly evaluationPeriods: number;
```

- *Type:* number
- *Default:* 3

The number of periods over which data is compared to the specified threshold.

---

##### `threshold`<sup>Optional</sup> <a name="threshold" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnTunnelStateAlarmConfig.property.threshold"></a>

```typescript
public readonly threshold: number;
```

- *Type:* number
- *Default:* 1

A value less than 1 indicates that at least one tunnel is in DOWN state.

---

## Classes <a name="Classes" id="Classes"></a>

### ApiGatewayRecommendedAlarmsAspect <a name="ApiGatewayRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for an ApiGateway api.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ApiGateway](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ApiGateway)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { ApiGatewayRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApiGatewayRecommendedAlarmsAspect(props: ApiGatewayRestApiRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig">ApiGatewayRestApiRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRestApiRecommendedAlarmsConfig">ApiGatewayRestApiRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### ApplicationLoadBalancerRecommendedAlarmsAspect <a name="ApplicationLoadBalancerRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for an ApplicationLoadBalancer.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { ApplicationLoadBalancerRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApplicationLoadBalancerRecommendedAlarmsAspect(props: ApplicationLoadBalancerRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig">ApplicationLoadBalancerRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsConfig">ApplicationLoadBalancerRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### ApplicationTargetGroupRecommendedAlarmsAspect <a name="ApplicationTargetGroupRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for an ApplicationTargetGroup.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { ApplicationTargetGroupRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ApplicationTargetGroupRecommendedAlarmsAspect(props: ApplicationTargetGroupRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig">ApplicationTargetGroupRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsConfig">ApplicationTargetGroupRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### AutoScalingRecommendedAlarmsAspect <a name="AutoScalingRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for an EC2 AutoScalingGroup.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#AutoScaling](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#AutoScaling)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { AutoScalingRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new AutoScalingRecommendedAlarmsAspect(props: AutoScalingGroupRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig">AutoScalingGroupRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingGroupRecommendedAlarmsConfig">AutoScalingGroupRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### CloudFrontRecommendedAlarmsAspect <a name="CloudFrontRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for an CloudFront Distribution.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#CloudFront](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#CloudFront)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { CloudFrontRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new CloudFrontRecommendedAlarmsAspect(props: CloudFrontDistributionRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig">CloudFrontDistributionRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontDistributionRecommendedAlarmsConfig">CloudFrontDistributionRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### DmsReplicationInstanceRecommendedAlarmsAspect <a name="DmsReplicationInstanceRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for a DMS Replication Instance.

> [https://aws.amazon.com/blogs/database/setting-up-amazon-cloudwatch-alarms-for-aws-dms-resources-using-the-aws-cli/](https://aws.amazon.com/blogs/database/setting-up-amazon-cloudwatch-alarms-for-aws-dms-resources-using-the-aws-cli/)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { DmsReplicationInstanceRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DmsReplicationInstanceRecommendedAlarmsAspect(props: DmsReplicationInstanceRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig">DmsReplicationInstanceRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsConfig">DmsReplicationInstanceRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### DmsReplicationTaskRecommendedAlarmsAspect <a name="DmsReplicationTaskRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for a DMS Replication Task.

> [https://aws.amazon.com/blogs/database/setting-up-amazon-cloudwatch-alarms-for-aws-dms-resources-using-the-aws-cli/](https://aws.amazon.com/blogs/database/setting-up-amazon-cloudwatch-alarms-for-aws-dms-resources-using-the-aws-cli/)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { DmsReplicationTaskRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DmsReplicationTaskRecommendedAlarmsAspect(props?: DmsReplicationTaskRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig">DmsReplicationTaskRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsConfig">DmsReplicationTaskRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### DynamoDbRecommendedAlarmsAspect <a name="DynamoDbRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for an DynamoDb Table.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#DynamoDB](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#DynamoDB)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { DynamoDbRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new DynamoDbRecommendedAlarmsAspect(props: DynamoDbTableRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig">DynamoDbTableRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbTableRecommendedAlarmsConfig">DynamoDbTableRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### Ec2RecommendedAlarmsAspect <a name="Ec2RecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for an EC2 Instance.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EC2](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EC2)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsAspect.Initializer"></a>

```typescript
import { Ec2RecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new Ec2RecommendedAlarmsAspect(props?: Ec2InstanceRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig">Ec2InstanceRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2InstanceRecommendedAlarmsConfig">Ec2InstanceRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### EcsRecommendedAlarmsAspect <a name="EcsRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for an ECS service.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ECS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ECS)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { EcsRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new EcsRecommendedAlarmsAspect(props: EcsServiceRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig">EcsServiceRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsServiceRecommendedAlarmsConfig">EcsServiceRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### EfsRecommendedAlarmsAspect <a name="EfsRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for an EFS FileSystem.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EFS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EFS)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { EfsRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new EfsRecommendedAlarmsAspect(props?: EfsFileSystemRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig">EfsFileSystemRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsFileSystemRecommendedAlarmsConfig">EfsFileSystemRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### ElastiCacheClusterRecommendedAlarmsAspect <a name="ElastiCacheClusterRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for an ElastiCache CfnCacheCluster.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ElastiCache](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ElastiCache)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { ElastiCacheClusterRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ElastiCacheClusterRecommendedAlarmsAspect(props: ElastiCacheClusterRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig">ElastiCacheClusterRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsConfig">ElastiCacheClusterRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheClusterRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### ElastiCacheReplicationGroupRecommendedAlarmsAspect <a name="ElastiCacheReplicationGroupRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for an ElastiCache CfnReplicationGroup.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ElastiCache](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ElastiCache)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { ElastiCacheReplicationGroupRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new ElastiCacheReplicationGroupRecommendedAlarmsAspect(props: ElastiCacheReplicationGroupRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig">ElastiCacheReplicationGroupRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsConfig">ElastiCacheReplicationGroupRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheReplicationGroupRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### LambdaRecommendedAlarmsAspect <a name="LambdaRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

An aspect that applies recommended alarms for Lambda functions.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#Lambda](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#Lambda)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { LambdaRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new LambdaRecommendedAlarmsAspect(props: LambdaRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig">LambdaRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsConfig">LambdaRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### NetworkLoadBalancerRecommendedAlarmsAspect <a name="NetworkLoadBalancerRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for a NetworkLoadBalancer.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { NetworkLoadBalancerRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new NetworkLoadBalancerRecommendedAlarmsAspect(props: NetworkLoadBalancerRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig">NetworkLoadBalancerRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsConfig">NetworkLoadBalancerRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### NetworkTargetGroupRecommendedAlarmsAspect <a name="NetworkTargetGroupRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for a NetworkTargetGroup.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/elb-metricscollected.html)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { NetworkTargetGroupRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new NetworkTargetGroupRecommendedAlarmsAspect(props: NetworkTargetGroupRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig">NetworkTargetGroupRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsConfig">NetworkTargetGroupRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### RdsAuroraRecommendedAlarmsAspect <a name="RdsAuroraRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

An aspect that applies recommended alarms for RDS clusters.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#RDS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#RDS)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { RdsAuroraRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RdsAuroraRecommendedAlarmsAspect(props: RdsAuroraRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig">RdsAuroraRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsConfig">RdsAuroraRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsAuroraRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### RdsInstanceRecommendedAlarmsAspect <a name="RdsInstanceRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

An aspect that applies recommended alarms for RDS database instances.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#RDS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#RDS)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { RdsInstanceRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new RdsInstanceRecommendedAlarmsAspect(props: RdsInstanceRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig">RdsInstanceRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsConfig">RdsInstanceRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsInstanceRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### S3RecommendedAlarmsAspect <a name="S3RecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for an S3 bucket.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsAspect.Initializer"></a>

```typescript
import { S3RecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new S3RecommendedAlarmsAspect(props?: S3RecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig">S3RecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsConfig">S3RecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### SfRecommendedAlarmsAspect <a name="SfRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the alarms for an StepFunctions StateMachine.

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { SfRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SfRecommendedAlarmsAspect(props: SfStateMachineRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig">SfStateMachineRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfStateMachineRecommendedAlarmsConfig">SfStateMachineRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### SnsRecommendedAlarmsAspect <a name="SnsRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

An aspect that applies recommended alarms to SNS topics.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#SNS)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { SnsRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SnsRecommendedAlarmsAspect(props: SnsRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig">SnsRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsConfig">SnsRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---




### SqsRecommendedAlarmsAspect <a name="SqsRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configured the recommended alarms for an SQS queue.

Requires defining thresholds for some alarms.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#SQS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#SQS)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { SqsRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new SqsRecommendedAlarmsAspect(props: SqsRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig">SqsRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Required</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsConfig">SqsRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---


#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsAspect.property.deadLetterQueues">deadLetterQueues</a></code> | <code>string[]</code> | A list of dead letter queues discovered in the scope. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsAspect.property.deadLetterQueuesDiscovered">deadLetterQueuesDiscovered</a></code> | <code>boolean</code> | A flag to indicate whether dead letter queues have been discovered. |

---

##### `deadLetterQueues`<sup>Required</sup> <a name="deadLetterQueues" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsAspect.property.deadLetterQueues"></a>

```typescript
public readonly deadLetterQueues: string[];
```

- *Type:* string[]

A list of dead letter queues discovered in the scope.

We exclude these from the recommended alarms
because they don't make sense.

---

##### `deadLetterQueuesDiscovered`<sup>Required</sup> <a name="deadLetterQueuesDiscovered" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsAspect.property.deadLetterQueuesDiscovered"></a>

```typescript
public readonly deadLetterQueuesDiscovered: boolean;
```

- *Type:* boolean

A flag to indicate whether dead letter queues have been discovered.

This is used to prevent running the discovery logic on every call to `visit`.

---


### VpnRecommendedAlarmsAspect <a name="VpnRecommendedAlarmsAspect" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnRecommendedAlarmsAspect"></a>

- *Implements:* aws-cdk-lib.IAspect

Configures the recommended alarms for an VpnConnection.

> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#VPN](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#VPN)

#### Initializers <a name="Initializers" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnRecommendedAlarmsAspect.Initializer"></a>

```typescript
import { VpnRecommendedAlarmsAspect } from '@renovosolutions/cdk-library-cloudwatch-alarms'

new VpnRecommendedAlarmsAspect(props?: VpnConnectionRecommendedAlarmsConfig)
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnRecommendedAlarmsAspect.Initializer.parameter.props">props</a></code> | <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig">VpnConnectionRecommendedAlarmsConfig</a></code> | *No description.* |

---

##### `props`<sup>Optional</sup> <a name="props" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnRecommendedAlarmsAspect.Initializer.parameter.props"></a>

- *Type:* <a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnConnectionRecommendedAlarmsConfig">VpnConnectionRecommendedAlarmsConfig</a>

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnRecommendedAlarmsAspect.visit">visit</a></code> | All aspects can visit an IConstruct. |

---

##### `visit` <a name="visit" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnRecommendedAlarmsAspect.visit"></a>

```typescript
public visit(node: IConstruct): void
```

All aspects can visit an IConstruct.

###### `node`<sup>Required</sup> <a name="node" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnRecommendedAlarmsAspect.visit.parameter.node"></a>

- *Type:* constructs.IConstruct

---





## Enums <a name="Enums" id="Enums"></a>

### ApiGatewayRecommendedAlarmsMetrics <a name="ApiGatewayRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics"></a>

The recommended metrics for ApiGateway alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics.ERROR_4XX">ERROR_4XX</a></code> | The number of client-side errors captured in a given period. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics.ERROR_5XX">ERROR_5XX</a></code> | The number of server-side errors captured in a given period. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics.LATENCY">LATENCY</a></code> | The time (milliseconds) between when API Gateway receives a request from a client and when it returns a response to the client. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics.LATENCY_ANOMALY">LATENCY_ANOMALY</a></code> | Anomaly detection on the Latency metric. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics.COUNT_ANOMALY">COUNT_ANOMALY</a></code> | Anomaly detection on the Count metric. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics.INTEGRATION_LATENCY_ANOMALY">INTEGRATION_LATENCY_ANOMALY</a></code> | Anomaly detection on the IntegrationLatency metric. |

---

##### `ERROR_4XX` <a name="ERROR_4XX" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics.ERROR_4XX"></a>

The number of client-side errors captured in a given period.

---


##### `ERROR_5XX` <a name="ERROR_5XX" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics.ERROR_5XX"></a>

The number of server-side errors captured in a given period.

---


##### `LATENCY` <a name="LATENCY" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics.LATENCY"></a>

The time (milliseconds) between when API Gateway receives a request from a client and when it returns a response to the client.

The latency includes the integration latency
and other API Gateway overhead.

---


##### `LATENCY_ANOMALY` <a name="LATENCY_ANOMALY" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics.LATENCY_ANOMALY"></a>

Anomaly detection on the Latency metric.

Detects drift in total request latency
(API Gateway overhead + backend integration) without requiring a static threshold.

---


##### `COUNT_ANOMALY` <a name="COUNT_ANOMALY" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics.COUNT_ANOMALY"></a>

Anomaly detection on the Count metric.

Detects unexpected drops (or spikes) in
traffic volume for low-traffic APIs where a static `LESS_THAN_THRESHOLD` value
is hard to pick.

---


##### `INTEGRATION_LATENCY_ANOMALY` <a name="INTEGRATION_LATENCY_ANOMALY" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApiGatewayRecommendedAlarmsMetrics.INTEGRATION_LATENCY_ANOMALY"></a>

Anomaly detection on the IntegrationLatency metric.

Detects drift in backend
latency independently of overall request latency. No static counterpart exists
in this library.

---


### ApplicationLoadBalancerRecommendedAlarmsMetrics <a name="ApplicationLoadBalancerRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsMetrics"></a>

The recommended metrics for ApplicationLoadBalancer alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsMetrics.REJECTED_CONNECTION_COUNT">REJECTED_CONNECTION_COUNT</a></code> | The number of connection requests that were rejected because the load balancer had reached its maximum connections. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsMetrics.HTTP_CODE_ELB_4XX_COUNT">HTTP_CODE_ELB_4XX_COUNT</a></code> | The number of HTTP 4XX client error codes generated by the load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsMetrics.HTTP_CODE_ELB_5XX_COUNT">HTTP_CODE_ELB_5XX_COUNT</a></code> | The number of HTTP 5XX server error codes generated by the load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsMetrics.HTTP_CODE_TARGET_5XX_COUNT">HTTP_CODE_TARGET_5XX_COUNT</a></code> | The number of HTTP 5XX server error codes generated by the targets. |

---

##### `REJECTED_CONNECTION_COUNT` <a name="REJECTED_CONNECTION_COUNT" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsMetrics.REJECTED_CONNECTION_COUNT"></a>

The number of connection requests that were rejected because the load balancer had reached its maximum connections.

---


##### `HTTP_CODE_ELB_4XX_COUNT` <a name="HTTP_CODE_ELB_4XX_COUNT" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsMetrics.HTTP_CODE_ELB_4XX_COUNT"></a>

The number of HTTP 4XX client error codes generated by the load balancer.

---


##### `HTTP_CODE_ELB_5XX_COUNT` <a name="HTTP_CODE_ELB_5XX_COUNT" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsMetrics.HTTP_CODE_ELB_5XX_COUNT"></a>

The number of HTTP 5XX server error codes generated by the load balancer.

---


##### `HTTP_CODE_TARGET_5XX_COUNT` <a name="HTTP_CODE_TARGET_5XX_COUNT" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationLoadBalancerRecommendedAlarmsMetrics.HTTP_CODE_TARGET_5XX_COUNT"></a>

The number of HTTP 5XX server error codes generated by the targets.

---


### ApplicationTargetGroupRecommendedAlarmsMetrics <a name="ApplicationTargetGroupRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsMetrics"></a>

The recommended metrics for ApplicationTargetGroup alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsMetrics.HEALTHY_HOST_COUNT">HEALTHY_HOST_COUNT</a></code> | The number of healthy targets in the target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsMetrics.UNHEALTHY_HOST_COUNT">UNHEALTHY_HOST_COUNT</a></code> | The number of unhealthy targets in the target group. |

---

##### `HEALTHY_HOST_COUNT` <a name="HEALTHY_HOST_COUNT" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsMetrics.HEALTHY_HOST_COUNT"></a>

The number of healthy targets in the target group.

---


##### `UNHEALTHY_HOST_COUNT` <a name="UNHEALTHY_HOST_COUNT" id="@renovosolutions/cdk-library-cloudwatch-alarms.ApplicationTargetGroupRecommendedAlarmsMetrics.UNHEALTHY_HOST_COUNT"></a>

The number of unhealthy targets in the target group.

---


### AutoScalingRecommendedAlarmsMetrics <a name="AutoScalingRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingRecommendedAlarmsMetrics"></a>

The recommended metrics for EC2 AutoScaling alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingRecommendedAlarmsMetrics.GROUP_IN_SERVICE_CAPACITY">GROUP_IN_SERVICE_CAPACITY</a></code> | The number of capacity units that are running as part of the Auto Scaling group. |

---

##### `GROUP_IN_SERVICE_CAPACITY` <a name="GROUP_IN_SERVICE_CAPACITY" id="@renovosolutions/cdk-library-cloudwatch-alarms.AutoScalingRecommendedAlarmsMetrics.GROUP_IN_SERVICE_CAPACITY"></a>

The number of capacity units that are running as part of the Auto Scaling group.

---


### CloudFrontRecommendedAlarmsMetrics <a name="CloudFrontRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsMetrics"></a>

The recommended metrics for CloudFront alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsMetrics.ERROR_RATE_5XX">ERROR_RATE_5XX</a></code> | The percentage of all viewer requests for which the response's HTTP status code is 5xx. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsMetrics.ORIGIN_LATENCY">ORIGIN_LATENCY</a></code> | The total time spent from when CloudFront receives a request to when it starts providing a response to the network (not the viewer), for requests that are served from the origin, not the CloudFront cache. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsMetrics.FUNCTION_VALIDATION_ERRORS">FUNCTION_VALIDATION_ERRORS</a></code> | The number of validation errors produced by the function in a given time period. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsMetrics.FUNCTION_EXECUTION_ERRORS">FUNCTION_EXECUTION_ERRORS</a></code> | The number of execution errors that occurred in a given time period. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsMetrics.FUNCTION_THROTTLES">FUNCTION_THROTTLES</a></code> | The number of times that the function was throttled in a given time period. |

---

##### `ERROR_RATE_5XX` <a name="ERROR_RATE_5XX" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsMetrics.ERROR_RATE_5XX"></a>

The percentage of all viewer requests for which the response's HTTP status code is 5xx.

---


##### `ORIGIN_LATENCY` <a name="ORIGIN_LATENCY" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsMetrics.ORIGIN_LATENCY"></a>

The total time spent from when CloudFront receives a request to when it starts providing a response to the network (not the viewer), for requests that are served from the origin, not the CloudFront cache.

This is also known as first byte latency, or time-to-first-byte.

---


##### `FUNCTION_VALIDATION_ERRORS` <a name="FUNCTION_VALIDATION_ERRORS" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsMetrics.FUNCTION_VALIDATION_ERRORS"></a>

The number of validation errors produced by the function in a given time period.

Validation errors occur when the function runs successfully but returns invalid data
(an invalid {@link https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/functions-event-structure.html event object}).

---


##### `FUNCTION_EXECUTION_ERRORS` <a name="FUNCTION_EXECUTION_ERRORS" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsMetrics.FUNCTION_EXECUTION_ERRORS"></a>

The number of execution errors that occurred in a given time period.

Execution errors occur
when the function fails to complete successfully.

---


##### `FUNCTION_THROTTLES` <a name="FUNCTION_THROTTLES" id="@renovosolutions/cdk-library-cloudwatch-alarms.CloudFrontRecommendedAlarmsMetrics.FUNCTION_THROTTLES"></a>

The number of times that the function was throttled in a given time period.

Functions can be throttled for the following reasons:
- The function continuously exceeds the maximum time allowed for execution
- The function results in compilation errors
- There is an unusually high number of requests per second

---


### DmsReplicationInstanceRecommendedAlarmsMetrics <a name="DmsReplicationInstanceRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsMetrics"></a>

The recommended metrics for DMS Replication Instance alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsMetrics.CPU_UTILIZATION">CPU_UTILIZATION</a></code> | The percentage of allocated vCPU (virtual CPU) currently in use on the instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsMetrics.FREEABLE_MEMORY">FREEABLE_MEMORY</a></code> | The amount in bytes of available random access memory. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsMetrics.FREE_STORAGE_SPACE">FREE_STORAGE_SPACE</a></code> | The amount in bytes of available storage space. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsMetrics.WRITE_IOPS">WRITE_IOPS</a></code> | The average number of disk write I/O operations per second. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsMetrics.SWAP_USAGE">SWAP_USAGE</a></code> | The amount in bytes of swap space used on the replication instance. |

---

##### `CPU_UTILIZATION` <a name="CPU_UTILIZATION" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsMetrics.CPU_UTILIZATION"></a>

The percentage of allocated vCPU (virtual CPU) currently in use on the instance.

---


##### `FREEABLE_MEMORY` <a name="FREEABLE_MEMORY" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsMetrics.FREEABLE_MEMORY"></a>

The amount in bytes of available random access memory.

---


##### `FREE_STORAGE_SPACE` <a name="FREE_STORAGE_SPACE" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsMetrics.FREE_STORAGE_SPACE"></a>

The amount in bytes of available storage space.

---


##### `WRITE_IOPS` <a name="WRITE_IOPS" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsMetrics.WRITE_IOPS"></a>

The average number of disk write I/O operations per second.

---


##### `SWAP_USAGE` <a name="SWAP_USAGE" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationInstanceRecommendedAlarmsMetrics.SWAP_USAGE"></a>

The amount in bytes of swap space used on the replication instance.

---


### DmsReplicationTaskMigrationType <a name="DmsReplicationTaskMigrationType" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskMigrationType"></a>

DMS Replication Task migration types.

These are the valid migration types for AWS DMS Replication Tasks.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskMigrationType.FULL_LOAD">FULL_LOAD</a></code> | Full load migration - copies all existing data from the source to the target. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskMigrationType.CDC">CDC</a></code> | Change Data Capture (CDC) migration - captures ongoing changes from the source. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskMigrationType.FULL_LOAD_AND_CDC">FULL_LOAD_AND_CDC</a></code> | Full load and CDC migration - performs initial full load then captures ongoing changes. |

---

##### `FULL_LOAD` <a name="FULL_LOAD" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskMigrationType.FULL_LOAD"></a>

Full load migration - copies all existing data from the source to the target.

---


##### `CDC` <a name="CDC" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskMigrationType.CDC"></a>

Change Data Capture (CDC) migration - captures ongoing changes from the source.

---


##### `FULL_LOAD_AND_CDC` <a name="FULL_LOAD_AND_CDC" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskMigrationType.FULL_LOAD_AND_CDC"></a>

Full load and CDC migration - performs initial full load then captures ongoing changes.

---


### DmsReplicationTaskRecommendedAlarmsMetrics <a name="DmsReplicationTaskRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsMetrics"></a>

The recommended metrics for DMS Replication Task alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsMetrics.CDC_LATENCY_SOURCE">CDC_LATENCY_SOURCE</a></code> | The gap, in seconds, between the last event captured from the source endpoint and current system time. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsMetrics.CDC_LATENCY_TARGET">CDC_LATENCY_TARGET</a></code> | The gap, in seconds, between a change that was committed to the source and the same change committed to the target. |

---

##### `CDC_LATENCY_SOURCE` <a name="CDC_LATENCY_SOURCE" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsMetrics.CDC_LATENCY_SOURCE"></a>

The gap, in seconds, between the last event captured from the source endpoint and current system time.

---


##### `CDC_LATENCY_TARGET` <a name="CDC_LATENCY_TARGET" id="@renovosolutions/cdk-library-cloudwatch-alarms.DmsReplicationTaskRecommendedAlarmsMetrics.CDC_LATENCY_TARGET"></a>

The gap, in seconds, between a change that was committed to the source and the same change committed to the target.

---


### DynamoDbRecommendedAlarmsMetrics <a name="DynamoDbRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics"></a>

The recommended metrics for DynamoDb alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics.READ_THROTTLE_EVENTS">READ_THROTTLE_EVENTS</a></code> | Requests to DynamoDB that exceed the provisioned read capacity units for a table or a global secondary index. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics.SYSTEM_ERRORS">SYSTEM_ERRORS</a></code> | The requests to DynamoDB or Amazon DynamoDB Streams that generate an HTTP 500 status code during the specified time period. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics.WRITE_THROTTLE_EVENTS">WRITE_THROTTLE_EVENTS</a></code> | Requests to DynamoDB that exceed the provisioned write capacity units for a table or a global secondary index. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics.AGE_OF_OLDEST_UNREPLICATED_RECORD">AGE_OF_OLDEST_UNREPLICATED_RECORD</a></code> | The elapsed time since a record yet to be replicated to the Kinesis data stream first appeared in the DynamoDB table. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics.FAILED_TO_REPLICATE_RECORD_COUNT">FAILED_TO_REPLICATE_RECORD_COUNT</a></code> | The number of records that DynamoDB failed to replicate to your Kinesis data stream. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics.THROTTLED_PUT_RECORD_COUNT">THROTTLED_PUT_RECORD_COUNT</a></code> | The number of records that were throttled by your Kinesis data stream due to insufficient Kinesis Data Streams capacity. |

---

##### `READ_THROTTLE_EVENTS` <a name="READ_THROTTLE_EVENTS" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics.READ_THROTTLE_EVENTS"></a>

Requests to DynamoDB that exceed the provisioned read capacity units for a table or a global secondary index.

---


##### `SYSTEM_ERRORS` <a name="SYSTEM_ERRORS" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics.SYSTEM_ERRORS"></a>

The requests to DynamoDB or Amazon DynamoDB Streams that generate an HTTP 500 status code during the specified time period.

An HTTP 500 usually indicates an internal service error.

---


##### `WRITE_THROTTLE_EVENTS` <a name="WRITE_THROTTLE_EVENTS" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics.WRITE_THROTTLE_EVENTS"></a>

Requests to DynamoDB that exceed the provisioned write capacity units for a table or a global secondary index.

---


##### `AGE_OF_OLDEST_UNREPLICATED_RECORD` <a name="AGE_OF_OLDEST_UNREPLICATED_RECORD" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics.AGE_OF_OLDEST_UNREPLICATED_RECORD"></a>

The elapsed time since a record yet to be replicated to the Kinesis data stream first appeared in the DynamoDB table.

---


##### `FAILED_TO_REPLICATE_RECORD_COUNT` <a name="FAILED_TO_REPLICATE_RECORD_COUNT" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics.FAILED_TO_REPLICATE_RECORD_COUNT"></a>

The number of records that DynamoDB failed to replicate to your Kinesis data stream.

---


##### `THROTTLED_PUT_RECORD_COUNT` <a name="THROTTLED_PUT_RECORD_COUNT" id="@renovosolutions/cdk-library-cloudwatch-alarms.DynamoDbRecommendedAlarmsMetrics.THROTTLED_PUT_RECORD_COUNT"></a>

The number of records that were throttled by your Kinesis data stream due to insufficient Kinesis Data Streams capacity.

---


### Ec2RecommendedAlarmsMetrics <a name="Ec2RecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsMetrics"></a>

The recommended metrics for EC2 alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsMetrics.CPU_UTILIZATION">CPU_UTILIZATION</a></code> | The percentage of physical CPU time that Amazon EC2 uses to run the EC2 instance, which includes time spent to run both the user code and the Amazon EC2 code. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsMetrics.STATUS_CHECK_FAILED">STATUS_CHECK_FAILED</a></code> | Reports whether the instance has passed all status checks in the last minute. |

---

##### `CPU_UTILIZATION` <a name="CPU_UTILIZATION" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsMetrics.CPU_UTILIZATION"></a>

The percentage of physical CPU time that Amazon EC2 uses to run the EC2 instance, which includes time spent to run both the user code and the Amazon EC2 code.

---


##### `STATUS_CHECK_FAILED` <a name="STATUS_CHECK_FAILED" id="@renovosolutions/cdk-library-cloudwatch-alarms.Ec2RecommendedAlarmsMetrics.STATUS_CHECK_FAILED"></a>

Reports whether the instance has passed all status checks in the last minute.

This metric can be either 0 (passed) or 1 (failed). By default, this metric is available at
a 1-minute frequency at no charge.

---


### EcsRecommendedAlarmsMetrics <a name="EcsRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsMetrics"></a>

The recommended metrics for ECS alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsMetrics.CPU_UTILIZATION">CPU_UTILIZATION</a></code> | The percentage of CPU units that is used by the cluster or service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsMetrics.MEMORY_UTILIZATION">MEMORY_UTILIZATION</a></code> | The percentage of memory in use by the cluster or service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsMetrics.EPHEMERAL_STORAGE_UTILIZED">EPHEMERAL_STORAGE_UTILIZED</a></code> | The ephemeral storage in GB that is used by the cluster or service. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsMetrics.RUNNING_TASK_COUNT">RUNNING_TASK_COUNT</a></code> | The number of tasks in your services that are in the RUNNING state. |

---

##### `CPU_UTILIZATION` <a name="CPU_UTILIZATION" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsMetrics.CPU_UTILIZATION"></a>

The percentage of CPU units that is used by the cluster or service.

---


##### `MEMORY_UTILIZATION` <a name="MEMORY_UTILIZATION" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsMetrics.MEMORY_UTILIZATION"></a>

The percentage of memory in use by the cluster or service.

---


##### `EPHEMERAL_STORAGE_UTILIZED` <a name="EPHEMERAL_STORAGE_UTILIZED" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsMetrics.EPHEMERAL_STORAGE_UTILIZED"></a>

The ephemeral storage in GB that is used by the cluster or service.

---


##### `RUNNING_TASK_COUNT` <a name="RUNNING_TASK_COUNT" id="@renovosolutions/cdk-library-cloudwatch-alarms.EcsRecommendedAlarmsMetrics.RUNNING_TASK_COUNT"></a>

The number of tasks in your services that are in the RUNNING state.

---


### EfsRecommendedAlarmsMetrics <a name="EfsRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsMetrics"></a>

The recommended metrics for EFS alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsMetrics.PERCENT_IO_LIMIT">PERCENT_IO_LIMIT</a></code> | Percentage of how close a file system is to reaching the I/O limit of the General Purpose performance mode. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsMetrics.BURST_CREDIT_BALANCE">BURST_CREDIT_BALANCE</a></code> | The number of burst credits that a file system has. |

---

##### `PERCENT_IO_LIMIT` <a name="PERCENT_IO_LIMIT" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsMetrics.PERCENT_IO_LIMIT"></a>

Percentage of how close a file system is to reaching the I/O limit of the General Purpose performance mode.

---


##### `BURST_CREDIT_BALANCE` <a name="BURST_CREDIT_BALANCE" id="@renovosolutions/cdk-library-cloudwatch-alarms.EfsRecommendedAlarmsMetrics.BURST_CREDIT_BALANCE"></a>

The number of burst credits that a file system has.

Burst credits allow a file system to burst
to throughput levels above a file system's baseline level for periods of time.

---


### ElastiCacheRecommendedAlarmsMetrics <a name="ElastiCacheRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheRecommendedAlarmsMetrics"></a>

The recommended metrics for ElastiCache alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheRecommendedAlarmsMetrics.DATABASE_MEMORY_USAGE_PERCENTAGE">DATABASE_MEMORY_USAGE_PERCENTAGE</a></code> | Percentage of the memory for the cluster that is in use. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheRecommendedAlarmsMetrics.ENGINE_CPU_UTILIZATION">ENGINE_CPU_UTILIZATION</a></code> | Provides CPU utilization of the Valkey or Redis OSS engine thread. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheRecommendedAlarmsMetrics.REPLICATION_LAG">REPLICATION_LAG</a></code> | It represents how far behind, in seconds, the replica is in applying changes from the primary node. |

---

##### `DATABASE_MEMORY_USAGE_PERCENTAGE` <a name="DATABASE_MEMORY_USAGE_PERCENTAGE" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheRecommendedAlarmsMetrics.DATABASE_MEMORY_USAGE_PERCENTAGE"></a>

Percentage of the memory for the cluster that is in use.

---


##### `ENGINE_CPU_UTILIZATION` <a name="ENGINE_CPU_UTILIZATION" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheRecommendedAlarmsMetrics.ENGINE_CPU_UTILIZATION"></a>

Provides CPU utilization of the Valkey or Redis OSS engine thread.

Because Valkey and Redis OSS are single-threaded,
you can use this metric to analyze the load of the process itself. The `EngineCPUUtilization` metric provides a more
precise visibility of the process. You can use it in conjunction with the `CPUUtilization` metric. `CPUUtilization`
exposes CPU utilization for the server instance as a whole, including other operating system and management processes.
For larger node types with four vCPUs or more, use the EngineCPUUtilization metric to monitor and set thresholds for scaling.

---


##### `REPLICATION_LAG` <a name="REPLICATION_LAG" id="@renovosolutions/cdk-library-cloudwatch-alarms.ElastiCacheRecommendedAlarmsMetrics.REPLICATION_LAG"></a>

It represents how far behind, in seconds, the replica is in applying changes from the primary node.

For Valkey 7.2 and onwards,
and Redis OSS engine version 5.0.6 onwards, the lag can be measured in milliseconds.

---


### LambdaRecommendedAlarmsMetrics <a name="LambdaRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsMetrics"></a>

The recommended metrics for Lambda alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsMetrics.ERRORS">ERRORS</a></code> | Errors include the exceptions thrown by the code as well as exceptions thrown by the Lambda runtime. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsMetrics.THROTTLES">THROTTLES</a></code> | Throttles occur when there is no concurrency available for scale up. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsMetrics.DURATION">DURATION</a></code> | Duration is the time taken for the function to process an event. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsMetrics.CONCURRENT_EXECUTIONS">CONCURRENT_EXECUTIONS</a></code> | ConcurrentExecutions is the number of concurrent executions of the function. |

---

##### `ERRORS` <a name="ERRORS" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsMetrics.ERRORS"></a>

Errors include the exceptions thrown by the code as well as exceptions thrown by the Lambda runtime.

---


##### `THROTTLES` <a name="THROTTLES" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsMetrics.THROTTLES"></a>

Throttles occur when there is no concurrency available for scale up.

---


##### `DURATION` <a name="DURATION" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsMetrics.DURATION"></a>

Duration is the time taken for the function to process an event.

---


##### `CONCURRENT_EXECUTIONS` <a name="CONCURRENT_EXECUTIONS" id="@renovosolutions/cdk-library-cloudwatch-alarms.LambdaRecommendedAlarmsMetrics.CONCURRENT_EXECUTIONS"></a>

ConcurrentExecutions is the number of concurrent executions of the function.

---


### NetworkLoadBalancerRecommendedAlarmsMetrics <a name="NetworkLoadBalancerRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsMetrics"></a>

The recommended metrics for NetworkLoadBalancer alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsMetrics.TCP_ELB_RESET_COUNT">TCP_ELB_RESET_COUNT</a></code> | The number of reset (RST) packets sent from the load balancer. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsMetrics.TCP_TARGET_RESET_COUNT">TCP_TARGET_RESET_COUNT</a></code> | The number of reset (RST) packets generated by the targets. |

---

##### `TCP_ELB_RESET_COUNT` <a name="TCP_ELB_RESET_COUNT" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsMetrics.TCP_ELB_RESET_COUNT"></a>

The number of reset (RST) packets sent from the load balancer.

---


##### `TCP_TARGET_RESET_COUNT` <a name="TCP_TARGET_RESET_COUNT" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkLoadBalancerRecommendedAlarmsMetrics.TCP_TARGET_RESET_COUNT"></a>

The number of reset (RST) packets generated by the targets.

---


### NetworkTargetGroupRecommendedAlarmsMetrics <a name="NetworkTargetGroupRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsMetrics"></a>

The recommended metrics for NetworkTargetGroup alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsMetrics.HEALTHY_HOST_COUNT">HEALTHY_HOST_COUNT</a></code> | The number of healthy targets in the target group. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsMetrics.UNHEALTHY_HOST_COUNT">UNHEALTHY_HOST_COUNT</a></code> | The number of unhealthy targets in the target group. |

---

##### `HEALTHY_HOST_COUNT` <a name="HEALTHY_HOST_COUNT" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsMetrics.HEALTHY_HOST_COUNT"></a>

The number of healthy targets in the target group.

---


##### `UNHEALTHY_HOST_COUNT` <a name="UNHEALTHY_HOST_COUNT" id="@renovosolutions/cdk-library-cloudwatch-alarms.NetworkTargetGroupRecommendedAlarmsMetrics.UNHEALTHY_HOST_COUNT"></a>

The number of unhealthy targets in the target group.

---


### PrivateLinkEndpointsRecommendedAlarmsMetrics <a name="PrivateLinkEndpointsRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsRecommendedAlarmsMetrics"></a>

The recommended metrics for PrivateLink Endpoints alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsRecommendedAlarmsMetrics.PACKETS_DROPPED">PACKETS_DROPPED</a></code> | Percentage of how close a file system is to reaching the I/O limit of the General Purpose performance mode. |

---

##### `PACKETS_DROPPED` <a name="PACKETS_DROPPED" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkEndpointsRecommendedAlarmsMetrics.PACKETS_DROPPED"></a>

Percentage of how close a file system is to reaching the I/O limit of the General Purpose performance mode.

---


### PrivateLinkServicesRecommendedAlarmsMetrics <a name="PrivateLinkServicesRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRecommendedAlarmsMetrics"></a>

The recommended metrics for PrivateLink Services alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRecommendedAlarmsMetrics.RST_PACKETS_SENT">RST_PACKETS_SENT</a></code> | The number of RST packets sent to endpoints by the endpoint service. |

---

##### `RST_PACKETS_SENT` <a name="RST_PACKETS_SENT" id="@renovosolutions/cdk-library-cloudwatch-alarms.PrivateLinkServicesRecommendedAlarmsMetrics.RST_PACKETS_SENT"></a>

The number of RST packets sent to endpoints by the endpoint service.

Increasing values could indicate
that there are unhealthy targets.

---


### RdsRecommendedAlarmsMetrics <a name="RdsRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics"></a>

The recommended metrics for RDS alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_CPU_UTILIZATION">INSTANCE_CPU_UTILIZATION</a></code> | The percentage of CPU utilization for an RDS instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_DATABASE_CONNECTIONS">INSTANCE_DATABASE_CONNECTIONS</a></code> | The number of client network connections to the database instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_FREEABLE_MEMORY">INSTANCE_FREEABLE_MEMORY</a></code> | The amount of available memory (RAM) on the RDS instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_FREE_LOCAL_STORAGE">INSTANCE_FREE_LOCAL_STORAGE</a></code> | The amount of available local storage space for an Aurora instance used for temporary files. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_FREE_STORAGE_SPACE">INSTANCE_FREE_STORAGE_SPACE</a></code> | The amount of available storage space for an Aurora instance. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_READ_LATENCY">INSTANCE_READ_LATENCY</a></code> | The average amount of time taken per disk read I/O operation. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_WRITE_LATENCY">INSTANCE_WRITE_LATENCY</a></code> | The average amount of time taken per disk write I/O operation. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_DB_LOAD">INSTANCE_DB_LOAD</a></code> | The average active sessions (AAS) for the DB instance which shows how many sessions are concurrently active on the database. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.AURORA_VOLUME_BYTES_LEFT_TOTAL">AURORA_VOLUME_BYTES_LEFT_TOTAL</a></code> | The remaining available space for the cluster volume. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.AURORA_BIN_LOG_REPLICATION_LAG">AURORA_BIN_LOG_REPLICATION_LAG</a></code> | The amount of time that a binary log replica DB cluster running on Aurora MySQL lags behind the binary log replication source. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.AURORA_VOLUME_BYTES_USED">AURORA_VOLUME_BYTES_USED</a></code> | The amount of storage used by the Aurora cluster volume. |

---

##### `INSTANCE_CPU_UTILIZATION` <a name="INSTANCE_CPU_UTILIZATION" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_CPU_UTILIZATION"></a>

The percentage of CPU utilization for an RDS instance.

---


##### `INSTANCE_DATABASE_CONNECTIONS` <a name="INSTANCE_DATABASE_CONNECTIONS" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_DATABASE_CONNECTIONS"></a>

The number of client network connections to the database instance.

---


##### `INSTANCE_FREEABLE_MEMORY` <a name="INSTANCE_FREEABLE_MEMORY" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_FREEABLE_MEMORY"></a>

The amount of available memory (RAM) on the RDS instance.

---


##### `INSTANCE_FREE_LOCAL_STORAGE` <a name="INSTANCE_FREE_LOCAL_STORAGE" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_FREE_LOCAL_STORAGE"></a>

The amount of available local storage space for an Aurora instance used for temporary files.

---


##### `INSTANCE_FREE_STORAGE_SPACE` <a name="INSTANCE_FREE_STORAGE_SPACE" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_FREE_STORAGE_SPACE"></a>

The amount of available storage space for an Aurora instance.

---


##### `INSTANCE_READ_LATENCY` <a name="INSTANCE_READ_LATENCY" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_READ_LATENCY"></a>

The average amount of time taken per disk read I/O operation.

---


##### `INSTANCE_WRITE_LATENCY` <a name="INSTANCE_WRITE_LATENCY" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_WRITE_LATENCY"></a>

The average amount of time taken per disk write I/O operation.

---


##### `INSTANCE_DB_LOAD` <a name="INSTANCE_DB_LOAD" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.INSTANCE_DB_LOAD"></a>

The average active sessions (AAS) for the DB instance which shows how many sessions are concurrently active on the database.

---


##### `AURORA_VOLUME_BYTES_LEFT_TOTAL` <a name="AURORA_VOLUME_BYTES_LEFT_TOTAL" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.AURORA_VOLUME_BYTES_LEFT_TOTAL"></a>

The remaining available space for the cluster volume.

---


##### `AURORA_BIN_LOG_REPLICATION_LAG` <a name="AURORA_BIN_LOG_REPLICATION_LAG" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.AURORA_BIN_LOG_REPLICATION_LAG"></a>

The amount of time that a binary log replica DB cluster running on Aurora MySQL lags behind the binary log replication source.

---


##### `AURORA_VOLUME_BYTES_USED` <a name="AURORA_VOLUME_BYTES_USED" id="@renovosolutions/cdk-library-cloudwatch-alarms.RdsRecommendedAlarmsMetrics.AURORA_VOLUME_BYTES_USED"></a>

The amount of storage used by the Aurora cluster volume.

---


### S3RecommendedAlarmsMetrics <a name="S3RecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsMetrics"></a>

The recommended metrics for S3 bucket alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsMetrics.ERRORS_4XX">ERRORS_4XX</a></code> | 4xxErrors are errors (4xx error codes) that are made in response to client requests. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsMetrics.ERRORS_5XX">ERRORS_5XX</a></code> | 5xxErrors are server errors (5xx error codes) that are made in response to client requests. |

---

##### `ERRORS_4XX` <a name="ERRORS_4XX" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsMetrics.ERRORS_4XX"></a>

4xxErrors are errors (4xx error codes) that are made in response to client requests.

---


##### `ERRORS_5XX` <a name="ERRORS_5XX" id="@renovosolutions/cdk-library-cloudwatch-alarms.S3RecommendedAlarmsMetrics.ERRORS_5XX"></a>

5xxErrors are server errors (5xx error codes) that are made in response to client requests.

---


### SfRecommendedAlarmsMetrics <a name="SfRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsMetrics"></a>

The recommended metrics for StepFunctions alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsMetrics.EXECUTION_TIME">EXECUTION_TIME</a></code> | Interval, in milliseconds, between the time the execution starts and the time it closes. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsMetrics.EXECUTION_THROTTLED">EXECUTION_THROTTLED</a></code> | Number of StateEntered events and retries that have been throttled. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsMetrics.EXECUTIONS_FAILED">EXECUTIONS_FAILED</a></code> | Number of failed executions. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsMetrics.EXECUTIONS_TIMED_OUT">EXECUTIONS_TIMED_OUT</a></code> | Number of executions that time out for any reason. |

---

##### `EXECUTION_TIME` <a name="EXECUTION_TIME" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsMetrics.EXECUTION_TIME"></a>

Interval, in milliseconds, between the time the execution starts and the time it closes.

---


##### `EXECUTION_THROTTLED` <a name="EXECUTION_THROTTLED" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsMetrics.EXECUTION_THROTTLED"></a>

Number of StateEntered events and retries that have been throttled.

This is related to
StateTransition throttling. For more information, see Quotas related to state throttling.

---


##### `EXECUTIONS_FAILED` <a name="EXECUTIONS_FAILED" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsMetrics.EXECUTIONS_FAILED"></a>

Number of failed executions.

---


##### `EXECUTIONS_TIMED_OUT` <a name="EXECUTIONS_TIMED_OUT" id="@renovosolutions/cdk-library-cloudwatch-alarms.SfRecommendedAlarmsMetrics.EXECUTIONS_TIMED_OUT"></a>

Number of executions that time out for any reason.

---


### SnsRecommendedAlarmsMetrics <a name="SnsRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics"></a>

The recommended metrics for SNS topic alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics.NUMBER_OF_MESSAGES_PUBLISHED">NUMBER_OF_MESSAGES_PUBLISHED</a></code> | The number of messages published to the topic. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics.NUMBER_OF_NOTIFICATIONS_DELIVERED">NUMBER_OF_NOTIFICATIONS_DELIVERED</a></code> | The number of notifications delivered. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics.NUMBER_OF_NOTIFICATIONS_FAILED">NUMBER_OF_NOTIFICATIONS_FAILED</a></code> | The number of notifications failed. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics.NUMBER_OF_NOTIFICATIONS_FILTERED_OUT_INVALID_ATTRIBUTES">NUMBER_OF_NOTIFICATIONS_FILTERED_OUT_INVALID_ATTRIBUTES</a></code> | The number of notifications filtered out due to invalid attributes. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics.NUMBER_OF_NOTIFICATIONS_FILTERED_OUT_INVALID_MESSAGE_BODY">NUMBER_OF_NOTIFICATIONS_FILTERED_OUT_INVALID_MESSAGE_BODY</a></code> | The number of notifications filtered out due to invalid message body. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics.NUMBER_OF_NOTIFICATIONS_REDRIVEN_TO_DLQ">NUMBER_OF_NOTIFICATIONS_REDRIVEN_TO_DLQ</a></code> | The number of notifications redriven to the dead-letter queue. |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics.NUMBER_OF_NOTIFICATIONS_FAILED_TO_REDRIVE_TO_DLQ">NUMBER_OF_NOTIFICATIONS_FAILED_TO_REDRIVE_TO_DLQ</a></code> | The number of notifications failed to redrive to the dead-letter queue. |

---

##### `NUMBER_OF_MESSAGES_PUBLISHED` <a name="NUMBER_OF_MESSAGES_PUBLISHED" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics.NUMBER_OF_MESSAGES_PUBLISHED"></a>

The number of messages published to the topic.

---


##### `NUMBER_OF_NOTIFICATIONS_DELIVERED` <a name="NUMBER_OF_NOTIFICATIONS_DELIVERED" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics.NUMBER_OF_NOTIFICATIONS_DELIVERED"></a>

The number of notifications delivered.

---


##### `NUMBER_OF_NOTIFICATIONS_FAILED` <a name="NUMBER_OF_NOTIFICATIONS_FAILED" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics.NUMBER_OF_NOTIFICATIONS_FAILED"></a>

The number of notifications failed.

---


##### `NUMBER_OF_NOTIFICATIONS_FILTERED_OUT_INVALID_ATTRIBUTES` <a name="NUMBER_OF_NOTIFICATIONS_FILTERED_OUT_INVALID_ATTRIBUTES" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics.NUMBER_OF_NOTIFICATIONS_FILTERED_OUT_INVALID_ATTRIBUTES"></a>

The number of notifications filtered out due to invalid attributes.

---


##### `NUMBER_OF_NOTIFICATIONS_FILTERED_OUT_INVALID_MESSAGE_BODY` <a name="NUMBER_OF_NOTIFICATIONS_FILTERED_OUT_INVALID_MESSAGE_BODY" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics.NUMBER_OF_NOTIFICATIONS_FILTERED_OUT_INVALID_MESSAGE_BODY"></a>

The number of notifications filtered out due to invalid message body.

---


##### `NUMBER_OF_NOTIFICATIONS_REDRIVEN_TO_DLQ` <a name="NUMBER_OF_NOTIFICATIONS_REDRIVEN_TO_DLQ" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics.NUMBER_OF_NOTIFICATIONS_REDRIVEN_TO_DLQ"></a>

The number of notifications redriven to the dead-letter queue.

---


##### `NUMBER_OF_NOTIFICATIONS_FAILED_TO_REDRIVE_TO_DLQ` <a name="NUMBER_OF_NOTIFICATIONS_FAILED_TO_REDRIVE_TO_DLQ" id="@renovosolutions/cdk-library-cloudwatch-alarms.SnsRecommendedAlarmsMetrics.NUMBER_OF_NOTIFICATIONS_FAILED_TO_REDRIVE_TO_DLQ"></a>

The number of notifications failed to redrive to the dead-letter queue.

---


### SqsRecommendedAlarmsMetrics <a name="SqsRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsMetrics"></a>

The recommended metrics for SQS queue alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsMetrics.APPROXIMATE_AGE_OF_OLDEST_MESSAGE">APPROXIMATE_AGE_OF_OLDEST_MESSAGE</a></code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsMetrics.APPROXIMATE_NUMBER_OF_MESSAGES_NOT_VISIBLE">APPROXIMATE_NUMBER_OF_MESSAGES_NOT_VISIBLE</a></code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsMetrics.APPROXIMATE_NUMBER_OF_MESSAGES_VISIBLE">APPROXIMATE_NUMBER_OF_MESSAGES_VISIBLE</a></code> | *No description.* |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsMetrics.NUMBER_OF_MESSAGES_SENT">NUMBER_OF_MESSAGES_SENT</a></code> | *No description.* |

---

##### `APPROXIMATE_AGE_OF_OLDEST_MESSAGE` <a name="APPROXIMATE_AGE_OF_OLDEST_MESSAGE" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsMetrics.APPROXIMATE_AGE_OF_OLDEST_MESSAGE"></a>

---


##### `APPROXIMATE_NUMBER_OF_MESSAGES_NOT_VISIBLE` <a name="APPROXIMATE_NUMBER_OF_MESSAGES_NOT_VISIBLE" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsMetrics.APPROXIMATE_NUMBER_OF_MESSAGES_NOT_VISIBLE"></a>

---


##### `APPROXIMATE_NUMBER_OF_MESSAGES_VISIBLE` <a name="APPROXIMATE_NUMBER_OF_MESSAGES_VISIBLE" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsMetrics.APPROXIMATE_NUMBER_OF_MESSAGES_VISIBLE"></a>

---


##### `NUMBER_OF_MESSAGES_SENT` <a name="NUMBER_OF_MESSAGES_SENT" id="@renovosolutions/cdk-library-cloudwatch-alarms.SqsRecommendedAlarmsMetrics.NUMBER_OF_MESSAGES_SENT"></a>

---


### VpnRecommendedAlarmsMetrics <a name="VpnRecommendedAlarmsMetrics" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnRecommendedAlarmsMetrics"></a>

The recommended metrics for VPN alarms.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@renovosolutions/cdk-library-cloudwatch-alarms.VpnRecommendedAlarmsMetrics.TUNNEL_STATE">TUNNEL_STATE</a></code> | Percentage of how close a file system is to reaching the I/O limit of the General Purpose performance mode. |

---

##### `TUNNEL_STATE` <a name="TUNNEL_STATE" id="@renovosolutions/cdk-library-cloudwatch-alarms.VpnRecommendedAlarmsMetrics.TUNNEL_STATE"></a>

Percentage of how close a file system is to reaching the I/O limit of the General Purpose performance mode.

---

