Repository: cdklabs/cdk-monitoring-constructs (language: python)

Issue:
[apigateway] Support P95 latency metric stat in dashboard and alarms
### Feature scope

API Gateway

### Describe your suggested feature

We support a variety of stats (P50, P90, P99, etc.) but are missing P95.


Discussion / hints:

Fix patch:
diff --git a/API.md b/API.md
index b39eff62..7f1647e8 100644
--- a/API.md
+++ b/API.md
@@ -3851,12 +3851,14 @@ const apiGatewayMonitoringOptions: ApiGatewayMonitoringOptions = { ... }
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyP50Alarm">addLatencyP50Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyP70Alarm">addLatencyP70Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyP90Alarm">addLatencyP90Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
+| <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyP95Alarm">addLatencyP95Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyP9999Alarm">addLatencyP9999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyP999Alarm">addLatencyP999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyP99Alarm">addLatencyP99Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyTM50Alarm">addLatencyTM50Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyTM70Alarm">addLatencyTM70Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyTM90Alarm">addLatencyTM90Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
+| <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyTM95Alarm">addLatencyTM95Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyTM9999Alarm">addLatencyTM9999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyTM999Alarm">addLatencyTM999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyTM99Alarm">addLatencyTM99Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
@@ -4063,6 +4065,16 @@ public readonly addLatencyP90Alarm: {[ key: string ]: LatencyThreshold};
 
 ---
 
+##### `addLatencyP95Alarm`<sup>Optional</sup> <a name="addLatencyP95Alarm" id="cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyP95Alarm"></a>
+
+```typescript
+public readonly addLatencyP95Alarm: {[ key: string ]: LatencyThreshold};
+```
+
+- *Type:* {[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}
+
+---
+
 ##### `addLatencyP9999Alarm`<sup>Optional</sup> <a name="addLatencyP9999Alarm" id="cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyP9999Alarm"></a>
 
 ```typescript
@@ -4123,6 +4135,16 @@ public readonly addLatencyTM90Alarm: {[ key: string ]: LatencyThreshold};
 
 ---
 
+##### `addLatencyTM95Alarm`<sup>Optional</sup> <a name="addLatencyTM95Alarm" id="cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyTM95Alarm"></a>
+
+```typescript
+public readonly addLatencyTM95Alarm: {[ key: string ]: LatencyThreshold};
+```
+
+- *Type:* {[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}
+
+---
+
 ##### `addLatencyTM9999Alarm`<sup>Optional</sup> <a name="addLatencyTM9999Alarm" id="cdk-monitoring-constructs.ApiGatewayMonitoringOptions.property.addLatencyTM9999Alarm"></a>
 
 ```typescript
@@ -4219,12 +4241,14 @@ const apiGatewayMonitoringProps: ApiGatewayMonitoringProps = { ... }
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyP50Alarm">addLatencyP50Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyP70Alarm">addLatencyP70Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyP90Alarm">addLatencyP90Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
+| <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyP95Alarm">addLatencyP95Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyP9999Alarm">addLatencyP9999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyP999Alarm">addLatencyP999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyP99Alarm">addLatencyP99Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyTM50Alarm">addLatencyTM50Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyTM70Alarm">addLatencyTM70Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyTM90Alarm">addLatencyTM90Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
+| <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyTM95Alarm">addLatencyTM95Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyTM9999Alarm">addLatencyTM9999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyTM999Alarm">addLatencyTM999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyTM99Alarm">addLatencyTM99Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
@@ -4500,6 +4524,16 @@ public readonly addLatencyP90Alarm: {[ key: string ]: LatencyThreshold};
 
 ---
 
+##### `addLatencyP95Alarm`<sup>Optional</sup> <a name="addLatencyP95Alarm" id="cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyP95Alarm"></a>
+
+```typescript
+public readonly addLatencyP95Alarm: {[ key: string ]: LatencyThreshold};
+```
+
+- *Type:* {[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}
+
+---
+
 ##### `addLatencyP9999Alarm`<sup>Optional</sup> <a name="addLatencyP9999Alarm" id="cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyP9999Alarm"></a>
 
 ```typescript
@@ -4560,6 +4594,16 @@ public readonly addLatencyTM90Alarm: {[ key: string ]: LatencyThreshold};
 
 ---
 
+##### `addLatencyTM95Alarm`<sup>Optional</sup> <a name="addLatencyTM95Alarm" id="cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyTM95Alarm"></a>
+
+```typescript
+public readonly addLatencyTM95Alarm: {[ key: string ]: LatencyThreshold};
+```
+
+- *Type:* {[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}
+
+---
+
 ##### `addLatencyTM9999Alarm`<sup>Optional</sup> <a name="addLatencyTM9999Alarm" id="cdk-monitoring-constructs.ApiGatewayMonitoringProps.property.addLatencyTM9999Alarm"></a>
 
 ```typescript
@@ -4746,12 +4790,14 @@ const apiGatewayV2HttpApiMonitoringProps: ApiGatewayV2HttpApiMonitoringProps = {
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyP50Alarm">addIntegrationLatencyP50Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyP70Alarm">addIntegrationLatencyP70Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyP90Alarm">addIntegrationLatencyP90Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
+| <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyP95Alarm">addIntegrationLatencyP95Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyP9999Alarm">addIntegrationLatencyP9999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyP999Alarm">addIntegrationLatencyP999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyP99Alarm">addIntegrationLatencyP99Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyTM50Alarm">addIntegrationLatencyTM50Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyTM70Alarm">addIntegrationLatencyTM70Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyTM90Alarm">addIntegrationLatencyTM90Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
+| <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyTM95Alarm">addIntegrationLatencyTM95Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyTM9999Alarm">addIntegrationLatencyTM9999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyTM999Alarm">addIntegrationLatencyTM999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyTM99Alarm">addIntegrationLatencyTM99Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
@@ -4760,12 +4806,14 @@ const apiGatewayV2HttpApiMonitoringProps: ApiGatewayV2HttpApiMonitoringProps = {
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyP50Alarm">addLatencyP50Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyP70Alarm">addLatencyP70Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyP90Alarm">addLatencyP90Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
+| <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyP95Alarm">addLatencyP95Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyP9999Alarm">addLatencyP9999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyP999Alarm">addLatencyP999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyP99Alarm">addLatencyP99Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyTM50Alarm">addLatencyTM50Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyTM70Alarm">addLatencyTM70Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyTM90Alarm">addLatencyTM90Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
+| <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyTM95Alarm">addLatencyTM95Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyTM9999Alarm">addLatencyTM9999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyTM999Alarm">addLatencyTM999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyTM99Alarm">addLatencyTM99Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
@@ -5039,6 +5087,16 @@ public readonly addIntegrationLatencyP90Alarm: {[ key: string ]: LatencyThreshol
 
 ---
 
+##### `addIntegrationLatencyP95Alarm`<sup>Optional</sup> <a name="addIntegrationLatencyP95Alarm" id="cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyP95Alarm"></a>
+
+```typescript
+public readonly addIntegrationLatencyP95Alarm: {[ key: string ]: LatencyThreshold};
+```
+
+- *Type:* {[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}
+
+---
+
 ##### `addIntegrationLatencyP9999Alarm`<sup>Optional</sup> <a name="addIntegrationLatencyP9999Alarm" id="cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyP9999Alarm"></a>
 
 ```typescript
@@ -5099,6 +5157,16 @@ public readonly addIntegrationLatencyTM90Alarm: {[ key: string ]: LatencyThresho
 
 ---
 
+##### `addIntegrationLatencyTM95Alarm`<sup>Optional</sup> <a name="addIntegrationLatencyTM95Alarm" id="cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyTM95Alarm"></a>
+
+```typescript
+public readonly addIntegrationLatencyTM95Alarm: {[ key: string ]: LatencyThreshold};
+```
+
+- *Type:* {[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}
+
+---
+
 ##### `addIntegrationLatencyTM9999Alarm`<sup>Optional</sup> <a name="addIntegrationLatencyTM9999Alarm" id="cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addIntegrationLatencyTM9999Alarm"></a>
 
 ```typescript
@@ -5179,6 +5247,16 @@ public readonly addLatencyP90Alarm: {[ key: string ]: LatencyThreshold};
 
 ---
 
+##### `addLatencyP95Alarm`<sup>Optional</sup> <a name="addLatencyP95Alarm" id="cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyP95Alarm"></a>
+
+```typescript
+public readonly addLatencyP95Alarm: {[ key: string ]: LatencyThreshold};
+```
+
+- *Type:* {[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}
+
+---
+
 ##### `addLatencyP9999Alarm`<sup>Optional</sup> <a name="addLatencyP9999Alarm" id="cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyP9999Alarm"></a>
 
 ```typescript
@@ -5239,6 +5317,16 @@ public readonly addLatencyTM90Alarm: {[ key: string ]: LatencyThreshold};
 
 ---
 
+##### `addLatencyTM95Alarm`<sup>Optional</sup> <a name="addLatencyTM95Alarm" id="cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyTM95Alarm"></a>
+
+```typescript
+public readonly addLatencyTM95Alarm: {[ key: string ]: LatencyThreshold};
+```
+
+- *Type:* {[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}
+
+---
+
 ##### `addLatencyTM9999Alarm`<sup>Optional</sup> <a name="addLatencyTM9999Alarm" id="cdk-monitoring-constructs.ApiGatewayV2HttpApiMonitoringProps.property.addLatencyTM9999Alarm"></a>
 
 ```typescript
@@ -5329,12 +5417,14 @@ const apiGatewayV2MonitoringOptions: ApiGatewayV2MonitoringOptions = { ... }
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyP50Alarm">addIntegrationLatencyP50Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyP70Alarm">addIntegrationLatencyP70Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyP90Alarm">addIntegrationLatencyP90Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
+| <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyP95Alarm">addIntegrationLatencyP95Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyP9999Alarm">addIntegrationLatencyP9999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyP999Alarm">addIntegrationLatencyP999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyP99Alarm">addIntegrationLatencyP99Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyTM50Alarm">addIntegrationLatencyTM50Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyTM70Alarm">addIntegrationLatencyTM70Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyTM90Alarm">addIntegrationLatencyTM90Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
+| <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyTM95Alarm">addIntegrationLatencyTM95Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyTM9999Alarm">addIntegrationLatencyTM9999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyTM999Alarm">addIntegrationLatencyTM999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyTM99Alarm">addIntegrationLatencyTM99Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
@@ -5343,12 +5433,14 @@ const apiGatewayV2MonitoringOptions: ApiGatewayV2MonitoringOptions = { ... }
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyP50Alarm">addLatencyP50Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyP70Alarm">addLatencyP70Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyP90Alarm">addLatencyP90Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
+| <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyP95Alarm">addLatencyP95Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyP9999Alarm">addLatencyP9999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyP999Alarm">addLatencyP999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyP99Alarm">addLatencyP99Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyTM50Alarm">addLatencyTM50Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyTM70Alarm">addLatencyTM70Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyTM90Alarm">addLatencyTM90Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
+| <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyTM95Alarm">addLatencyTM95Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyTM9999Alarm">addLatencyTM9999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyTM999Alarm">addLatencyTM999Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
 | <code><a href="#cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyTM99Alarm">addLatencyTM99Alarm</a></code> | <code>{[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}</code> | *No description.* |
@@ -5555,6 +5647,16 @@ public readonly addIntegrationLatencyP90Alarm: {[ key: string ]: LatencyThreshol
 
 ---
 
+##### `addIntegrationLatencyP95Alarm`<sup>Optional</sup> <a name="addIntegrationLatencyP95Alarm" id="cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyP95Alarm"></a>
+
+```typescript
+public readonly addIntegrationLatencyP95Alarm: {[ key: string ]: LatencyThreshold};
+```
+
+- *Type:* {[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}
+
+---
+
 ##### `addIntegrationLatencyP9999Alarm`<sup>Optional</sup> <a name="addIntegrationLatencyP9999Alarm" id="cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyP9999Alarm"></a>
 
 ```typescript
@@ -5615,6 +5717,16 @@ public readonly addIntegrationLatencyTM90Alarm: {[ key: string ]: LatencyThresho
 
 ---
 
+##### `addIntegrationLatencyTM95Alarm`<sup>Optional</sup> <a name="addIntegrationLatencyTM95Alarm" id="cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyTM95Alarm"></a>
+
+```typescript
+public readonly addIntegrationLatencyTM95Alarm: {[ key: string ]: LatencyThreshold};
+```
+
+- *Type:* {[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}
+
+---
+
 ##### `addIntegrationLatencyTM9999Alarm`<sup>Optional</sup> <a name="addIntegrationLatencyTM9999Alarm" id="cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addIntegrationLatencyTM9999Alarm"></a>
 
 ```typescript
@@ -5695,6 +5807,16 @@ public readonly addLatencyP90Alarm: {[ key: string ]: LatencyThreshold};
 
 ---
 
+##### `addLatencyP95Alarm`<sup>Optional</sup> <a name="addLatencyP95Alarm" id="cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyP95Alarm"></a>
+
+```typescript
+public readonly addLatencyP95Alarm: {[ key: string ]: LatencyThreshold};
+```
+
+- *Type:* {[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}
+
+---
+
 ##### `addLatencyP9999Alarm`<sup>Optional</sup> <a name="addLatencyP9999Alarm" id="cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyP9999Alarm"></a>
 
 ```typescript
@@ -5755,6 +5877,16 @@ public readonly addLatencyTM90Alarm: {[ key: string ]: LatencyThreshold};
 
 ---
 
+##### `addLatencyTM95Alarm`<sup>Optional</sup> <a name="addLatencyTM95Alarm" id="cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyTM95Alarm"></a>
+
+```typescript
+public readonly addLatencyTM95Alarm: {[ key: string ]: LatencyThreshold};
+```
+
+- *Type:* {[ key: string ]: <a href="#cdk-monitoring-constructs.LatencyThreshold">LatencyThreshold</a>}
+
+---
+
 ##### `addLatencyTM9999Alarm`<sup>Optional</sup> <a name="addLatencyTM9999Alarm" id="cdk-monitoring-constructs.ApiGatewayV2MonitoringOptions.property.addLatencyTM9999Alarm"></a>
 
 ```typescript
diff --git a/lib/monitoring/aws-apigateway/ApiGatewayMonitoring.ts b/lib/monitoring/aws-apigateway/ApiGatewayMonitoring.ts
index 58324c84..f2a2c53a 100644
--- a/lib/monitoring/aws-apigateway/ApiGatewayMonitoring.ts
+++ b/lib/monitoring/aws-apigateway/ApiGatewayMonitoring.ts
@@ -47,6 +47,7 @@ export interface ApiGatewayMonitoringOptions extends BaseMonitoringProps {
   readonly addLatencyP50Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyP70Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyP90Alarm?: Record<string, LatencyThreshold>;
+  readonly addLatencyP95Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyP99Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyP999Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyP9999Alarm?: Record<string, LatencyThreshold>;
@@ -54,6 +55,7 @@ export interface ApiGatewayMonitoringOptions extends BaseMonitoringProps {
   readonly addLatencyTM50Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyTM70Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyTM90Alarm?: Record<string, LatencyThreshold>;
+  readonly addLatencyTM95Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyTM99Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyTM999Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyTM9999Alarm?: Record<string, LatencyThreshold>;
@@ -159,6 +161,7 @@ export class ApiGatewayMonitoring extends Monitoring {
       [LatencyType.P50]: props.addLatencyP50Alarm,
       [LatencyType.P70]: props.addLatencyP70Alarm,
       [LatencyType.P90]: props.addLatencyP90Alarm,
+      [LatencyType.P95]: props.addLatencyP95Alarm,
       [LatencyType.P99]: props.addLatencyP99Alarm,
       [LatencyType.P999]: props.addLatencyP999Alarm,
       [LatencyType.P9999]: props.addLatencyP9999Alarm,
@@ -166,6 +169,7 @@ export class ApiGatewayMonitoring extends Monitoring {
       [LatencyType.TM50]: props.addLatencyTM50Alarm,
       [LatencyType.TM70]: props.addLatencyTM70Alarm,
       [LatencyType.TM90]: props.addLatencyTM90Alarm,
+      [LatencyType.TM95]: props.addLatencyTM95Alarm,
       [LatencyType.TM99]: props.addLatencyTM99Alarm,
       [LatencyType.TM999]: props.addLatencyTM999Alarm,
       [LatencyType.TM9999]: props.addLatencyTM9999Alarm,
diff --git a/lib/monitoring/aws-apigatewayv2/ApiGatewayV2HttpApiMonitoring.ts b/lib/monitoring/aws-apigatewayv2/ApiGatewayV2HttpApiMonitoring.ts
index 81e4e2e8..90323279 100644
--- a/lib/monitoring/aws-apigatewayv2/ApiGatewayV2HttpApiMonitoring.ts
+++ b/lib/monitoring/aws-apigatewayv2/ApiGatewayV2HttpApiMonitoring.ts
@@ -54,6 +54,7 @@ export interface ApiGatewayV2MonitoringOptions extends BaseMonitoringProps {
   readonly addLatencyP50Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyP70Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyP90Alarm?: Record<string, LatencyThreshold>;
+  readonly addLatencyP95Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyP99Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyP999Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyP9999Alarm?: Record<string, LatencyThreshold>;
@@ -61,6 +62,7 @@ export interface ApiGatewayV2MonitoringOptions extends BaseMonitoringProps {
   readonly addLatencyTM50Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyTM70Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyTM90Alarm?: Record<string, LatencyThreshold>;
+  readonly addLatencyTM95Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyTM99Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyTM999Alarm?: Record<string, LatencyThreshold>;
   readonly addLatencyTM9999Alarm?: Record<string, LatencyThreshold>;
@@ -69,6 +71,7 @@ export interface ApiGatewayV2MonitoringOptions extends BaseMonitoringProps {
   readonly addIntegrationLatencyP50Alarm?: Record<string, LatencyThreshold>;
   readonly addIntegrationLatencyP70Alarm?: Record<string, LatencyThreshold>;
   readonly addIntegrationLatencyP90Alarm?: Record<string, LatencyThreshold>;
+  readonly addIntegrationLatencyP95Alarm?: Record<string, LatencyThreshold>;
   readonly addIntegrationLatencyP99Alarm?: Record<string, LatencyThreshold>;
   readonly addIntegrationLatencyP999Alarm?: Record<string, LatencyThreshold>;
   readonly addIntegrationLatencyP9999Alarm?: Record<string, LatencyThreshold>;
@@ -76,6 +79,7 @@ export interface ApiGatewayV2MonitoringOptions extends BaseMonitoringProps {
   readonly addIntegrationLatencyTM50Alarm?: Record<string, LatencyThreshold>;
   readonly addIntegrationLatencyTM70Alarm?: Record<string, LatencyThreshold>;
   readonly addIntegrationLatencyTM90Alarm?: Record<string, LatencyThreshold>;
+  readonly addIntegrationLatencyTM95Alarm?: Record<string, LatencyThreshold>;
   readonly addIntegrationLatencyTM99Alarm?: Record<string, LatencyThreshold>;
   readonly addIntegrationLatencyTM999Alarm?: Record<string, LatencyThreshold>;
   readonly addIntegrationLatencyTM9999Alarm?: Record<string, LatencyThreshold>;
@@ -180,6 +184,7 @@ export class ApiGatewayV2HttpApiMonitoring extends Monitoring {
       [LatencyType.P50]: props.addLatencyP50Alarm,
       [LatencyType.P70]: props.addLatencyP70Alarm,
       [LatencyType.P90]: props.addLatencyP90Alarm,
+      [LatencyType.P95]: props.addLatencyP95Alarm,
       [LatencyType.P99]: props.addLatencyP99Alarm,
       [LatencyType.P999]: props.addLatencyP999Alarm,
       [LatencyType.P9999]: props.addLatencyP9999Alarm,
@@ -187,6 +192,7 @@ export class ApiGatewayV2HttpApiMonitoring extends Monitoring {
       [LatencyType.TM50]: props.addLatencyTM50Alarm,
       [LatencyType.TM70]: props.addLatencyTM70Alarm,
       [LatencyType.TM90]: props.addLatencyTM90Alarm,
+      [LatencyType.TM95]: props.addLatencyTM95Alarm,
       [LatencyType.TM99]: props.addLatencyTM99Alarm,
       [LatencyType.TM999]: props.addLatencyTM999Alarm,
       [LatencyType.TM9999]: props.addLatencyTM9999Alarm,
@@ -197,6 +203,7 @@ export class ApiGatewayV2HttpApiMonitoring extends Monitoring {
       [LatencyType.P50]: props.addIntegrationLatencyP50Alarm,
       [LatencyType.P70]: props.addIntegrationLatencyP70Alarm,
       [LatencyType.P90]: props.addIntegrationLatencyP90Alarm,
+      [LatencyType.P95]: props.addIntegrationLatencyP95Alarm,
       [LatencyType.P99]: props.addIntegrationLatencyP99Alarm,
       [LatencyType.P999]: props.addIntegrationLatencyP999Alarm,
       [LatencyType.P9999]: props.addIntegrationLatencyP9999Alarm,
@@ -204,6 +211,7 @@ export class ApiGatewayV2HttpApiMonitoring extends Monitoring {
       [LatencyType.TM50]: props.addIntegrationLatencyTM50Alarm,
       [LatencyType.TM70]: props.addIntegrationLatencyTM70Alarm,
       [LatencyType.TM90]: props.addIntegrationLatencyTM90Alarm,
+      [LatencyType.TM95]: props.addIntegrationLatencyTM95Alarm,
       [LatencyType.TM99]: props.addIntegrationLatencyTM99Alarm,
       [LatencyType.TM999]: props.addIntegrationLatencyTM999Alarm,
       [LatencyType.TM9999]: props.addIntegrationLatencyTM9999Alarm,


Test patch:
diff --git a/test/monitoring/aws-apigateway/ApiGatewayMonitoring.test.ts b/test/monitoring/aws-apigateway/ApiGatewayMonitoring.test.ts
index f086968f..d69397a0 100644
--- a/test/monitoring/aws-apigateway/ApiGatewayMonitoring.test.ts
+++ b/test/monitoring/aws-apigateway/ApiGatewayMonitoring.test.ts
@@ -76,6 +76,12 @@ test("snapshot test: all alarms", () => {
         datapointsToAlarm: 190,
       },
     },
+    addLatencyP95Alarm: {
+      Warning: {
+        maxLatency: Duration.millis(195),
+        datapointsToAlarm: 195,
+      },
+    },
     addLatencyP99Alarm: {
       Warning: {
         maxLatency: Duration.millis(199),
@@ -118,6 +124,12 @@ test("snapshot test: all alarms", () => {
         datapointsToAlarm: 290,
       },
     },
+    addLatencyTM95Alarm: {
+      Warning: {
+        maxLatency: Duration.millis(295),
+        datapointsToAlarm: 295,
+      },
+    },
     addLatencyTM99Alarm: {
       Warning: {
         maxLatency: Duration.millis(299),
@@ -155,6 +167,6 @@ test("snapshot test: all alarms", () => {
     },
   });
 
-  expect(numAlarmsCreated).toStrictEqual(20);
+  expect(numAlarmsCreated).toStrictEqual(22);
   expect(Template.fromStack(stack)).toMatchSnapshot();
 });
diff --git a/test/monitoring/aws-apigateway/__snapshots__/ApiGatewayMonitoring.test.ts.snap b/test/monitoring/aws-apigateway/__snapshots__/ApiGatewayMonitoring.test.ts.snap
index dbe5eec1..75002360 100644
--- a/test/monitoring/aws-apigateway/__snapshots__/ApiGatewayMonitoring.test.ts.snap
+++ b/test/monitoring/aws-apigateway/__snapshots__/ApiGatewayMonitoring.test.ts.snap
@@ -477,6 +477,44 @@ Object {
       },
       "Type": "AWS::CloudWatch::Alarm",
     },
+    "ScopeTestDummyApiLatencyP95Warning450538DF": Object {
+      "Properties": Object {
+        "ActionsEnabled": true,
+        "AlarmDescription": "P95 latency is too high.",
+        "AlarmName": "Test-DummyApi-Latency-P95-Warning",
+        "ComparisonOperator": "GreaterThanThreshold",
+        "DatapointsToAlarm": 195,
+        "EvaluationPeriods": 195,
+        "Metrics": Array [
+          Object {
+            "Id": "m1",
+            "Label": "P95",
+            "MetricStat": Object {
+              "Metric": Object {
+                "Dimensions": Array [
+                  Object {
+                    "Name": "ApiName",
+                    "Value": "DummyApi",
+                  },
+                  Object {
+                    "Name": "Stage",
+                    "Value": "prod",
+                  },
+                ],
+                "MetricName": "Latency",
+                "Namespace": "AWS/ApiGateway",
+              },
+              "Period": 300,
+              "Stat": "p95",
+            },
+            "ReturnData": true,
+          },
+        ],
+        "Threshold": 195,
+        "TreatMissingData": "notBreaching",
+      },
+      "Type": "AWS::CloudWatch::Alarm",
+    },
     "ScopeTestDummyApiLatencyP9999Warning89E47C72": Object {
       "Properties": Object {
         "ActionsEnabled": true,
@@ -705,6 +743,44 @@ Object {
       },
       "Type": "AWS::CloudWatch::Alarm",
     },
+    "ScopeTestDummyApiLatencyTM95WarningFFD46CB8": Object {
+      "Properties": Object {
+        "ActionsEnabled": true,
+        "AlarmDescription": "TM95 latency is too high.",
+        "AlarmName": "Test-DummyApi-Latency-TM95-Warning",
+        "ComparisonOperator": "GreaterThanThreshold",
+        "DatapointsToAlarm": 295,
+        "EvaluationPeriods": 295,
+        "Metrics": Array [
+          Object {
+            "Id": "m1",
+            "Label": "TM95",
+            "MetricStat": Object {
+              "Metric": Object {
+                "Dimensions": Array [
+                  Object {
+                    "Name": "ApiName",
+                    "Value": "DummyApi",
+                  },
+                  Object {
+                    "Name": "Stage",
+                    "Value": "prod",
+                  },
+                ],
+                "MetricName": "Latency",
+                "Namespace": "AWS/ApiGateway",
+              },
+              "Period": 300,
+              "Stat": "tm95",
+            },
+            "ReturnData": true,
+          },
+        ],
+        "Threshold": 295,
+        "TreatMissingData": "notBreaching",
+      },
+      "Type": "AWS::CloudWatch::Alarm",
+    },
     "ScopeTestDummyApiLatencyTM9999Warning4181DE97": Object {
       "Properties": Object {
         "ActionsEnabled": true,
diff --git a/test/monitoring/aws-apigatewayv2/ApiGatewayV2HttpApiMonitoring.test.ts b/test/monitoring/aws-apigatewayv2/ApiGatewayV2HttpApiMonitoring.test.ts
index e55edf37..82b549d9 100644
--- a/test/monitoring/aws-apigatewayv2/ApiGatewayV2HttpApiMonitoring.test.ts
+++ b/test/monitoring/aws-apigatewayv2/ApiGatewayV2HttpApiMonitoring.test.ts
@@ -59,6 +59,12 @@ test("snapshot test: all alarms", () => {
         datapointsToAlarm: 190,
       },
     },
+    addLatencyP95Alarm: {
+      Warning: {
+        maxLatency: Duration.millis(195),
+        datapointsToAlarm: 195,
+      },
+    },
     addLatencyP99Alarm: {
       Warning: {
         maxLatency: Duration.millis(199),
@@ -101,6 +107,12 @@ test("snapshot test: all alarms", () => {
         datapointsToAlarm: 290,
       },
     },
+    addLatencyTM95Alarm: {
+      Warning: {
+        maxLatency: Duration.millis(295),
+        datapointsToAlarm: 295,
+      },
+    },
     addLatencyTM99Alarm: {
       Warning: {
         maxLatency: Duration.millis(299),
@@ -143,6 +155,12 @@ test("snapshot test: all alarms", () => {
         datapointsToAlarm: 190,
       },
     },
+    addIntegrationLatencyP95Alarm: {
+      Warning: {
+        maxLatency: Duration.millis(195),
+        datapointsToAlarm: 195,
+      },
+    },
     addIntegrationLatencyP99Alarm: {
       Warning: {
         maxLatency: Duration.millis(199),
@@ -185,6 +203,12 @@ test("snapshot test: all alarms", () => {
         datapointsToAlarm: 290,
       },
     },
+    addIntegrationLatencyTM95Alarm: {
+      Warning: {
+        maxLatency: Duration.millis(295),
+        datapointsToAlarm: 295,
+      },
+    },
     addIntegrationLatencyTM99Alarm: {
       Warning: {
         maxLatency: Duration.millis(299),
@@ -246,6 +270,6 @@ test("snapshot test: all alarms", () => {
     },
   });
 
-  expect(numAlarmsCreated).toStrictEqual(34);
+  expect(numAlarmsCreated).toStrictEqual(38);
   expect(Template.fromStack(stack)).toMatchSnapshot();
 });
diff --git a/test/monitoring/aws-apigatewayv2/__snapshots__/ApiGatewayV2HttpApiMonitoring.test.ts.snap b/test/monitoring/aws-apigatewayv2/__snapshots__/ApiGatewayV2HttpApiMonitoring.test.ts.snap
index fadfdca8..698601a2 100644
--- a/test/monitoring/aws-apigatewayv2/__snapshots__/ApiGatewayV2HttpApiMonitoring.test.ts.snap
+++ b/test/monitoring/aws-apigatewayv2/__snapshots__/ApiGatewayV2HttpApiMonitoring.test.ts.snap
@@ -370,6 +370,46 @@ Object {
       },
       "Type": "AWS::CloudWatch::Alarm",
     },
+    "ScopeTestDummyApiIntegrationLatencyP95WarningD9A4B89B": Object {
+      "Properties": Object {
+        "ActionsEnabled": true,
+        "AlarmDescription": "P95 integration latency is too high.",
+        "AlarmName": "Test-DummyApi-IntegrationLatency-P95-Warning",
+        "ComparisonOperator": "GreaterThanThreshold",
+        "DatapointsToAlarm": 195,
+        "EvaluationPeriods": 195,
+        "Metrics": Array [
+          Object {
+            "Id": "m1",
+            "Label": "P95",
+            "MetricStat": Object {
+              "Metric": Object {
+                "Dimensions": Array [
+                  Object {
+                    "Name": "ApiId",
+                    "Value": Object {
+                      "Ref": "testHttpApiC57B300F",
+                    },
+                  },
+                  Object {
+                    "Name": "Stage",
+                    "Value": "$default",
+                  },
+                ],
+                "MetricName": "IntegrationLatency",
+                "Namespace": "AWS/ApiGateway",
+              },
+              "Period": 300,
+              "Stat": "p95",
+            },
+            "ReturnData": true,
+          },
+        ],
+        "Threshold": 195,
+        "TreatMissingData": "notBreaching",
+      },
+      "Type": "AWS::CloudWatch::Alarm",
+    },
     "ScopeTestDummyApiIntegrationLatencyP9999WarningA7C40063": Object {
       "Properties": Object {
         "ActionsEnabled": true,
@@ -610,6 +650,46 @@ Object {
       },
       "Type": "AWS::CloudWatch::Alarm",
     },
+    "ScopeTestDummyApiIntegrationLatencyTM95WarningCA30746B": Object {
+      "Properties": Object {
+        "ActionsEnabled": true,
+        "AlarmDescription": "TM95 integration latency is too high.",
+        "AlarmName": "Test-DummyApi-IntegrationLatency-TM95-Warning",
+        "ComparisonOperator": "GreaterThanThreshold",
+        "DatapointsToAlarm": 295,
+        "EvaluationPeriods": 295,
+        "Metrics": Array [
+          Object {
+            "Id": "m1",
+            "Label": "TM95",
+            "MetricStat": Object {
+              "Metric": Object {
+                "Dimensions": Array [
+                  Object {
+                    "Name": "ApiId",
+                    "Value": Object {
+                      "Ref": "testHttpApiC57B300F",
+                    },
+                  },
+                  Object {
+                    "Name": "Stage",
+                    "Value": "$default",
+                  },
+                ],
+                "MetricName": "IntegrationLatency",
+                "Namespace": "AWS/ApiGateway",
+              },
+              "Period": 300,
+              "Stat": "tm95",
+            },
+            "ReturnData": true,
+          },
+        ],
+        "Threshold": 295,
+        "TreatMissingData": "notBreaching",
+      },
+      "Type": "AWS::CloudWatch::Alarm",
+    },
     "ScopeTestDummyApiIntegrationLatencyTM9999Warning26E553E4": Object {
       "Properties": Object {
         "ActionsEnabled": true,
@@ -930,6 +1010,46 @@ Object {
       },
       "Type": "AWS::CloudWatch::Alarm",
     },
+    "ScopeTestDummyApiLatencyP95Warning450538DF": Object {
+      "Properties": Object {
+        "ActionsEnabled": true,
+        "AlarmDescription": "P95 latency is too high.",
+        "AlarmName": "Test-DummyApi-Latency-P95-Warning",
+        "ComparisonOperator": "GreaterThanThreshold",
+        "DatapointsToAlarm": 195,
+        "EvaluationPeriods": 195,
+        "Metrics": Array [
+          Object {
+            "Id": "m1",
+            "Label": "P95",
+            "MetricStat": Object {
+              "Metric": Object {
+                "Dimensions": Array [
+                  Object {
+                    "Name": "ApiId",
+                    "Value": Object {
+                      "Ref": "testHttpApiC57B300F",
+                    },
+                  },
+                  Object {
+                    "Name": "Stage",
+                    "Value": "$default",
+                  },
+                ],
+                "MetricName": "Latency",
+                "Namespace": "AWS/ApiGateway",
+              },
+              "Period": 300,
+              "Stat": "p95",
+            },
+            "ReturnData": true,
+          },
+        ],
+        "Threshold": 195,
+        "TreatMissingData": "notBreaching",
+      },
+      "Type": "AWS::CloudWatch::Alarm",
+    },
     "ScopeTestDummyApiLatencyP9999Warning89E47C72": Object {
       "Properties": Object {
         "ActionsEnabled": true,
@@ -1170,6 +1290,46 @@ Object {
       },
       "Type": "AWS::CloudWatch::Alarm",
     },
+    "ScopeTestDummyApiLatencyTM95WarningFFD46CB8": Object {
+      "Properties": Object {
+        "ActionsEnabled": true,
+        "AlarmDescription": "TM95 latency is too high.",
+        "AlarmName": "Test-DummyApi-Latency-TM95-Warning",
+        "ComparisonOperator": "GreaterThanThreshold",
+        "DatapointsToAlarm": 295,
+        "EvaluationPeriods": 295,
+        "Metrics": Array [
+          Object {
+            "Id": "m1",
+            "Label": "TM95",
+            "MetricStat": Object {
+              "Metric": Object {
+                "Dimensions": Array [
+                  Object {
+                    "Name": "ApiId",
+                    "Value": Object {
+                      "Ref": "testHttpApiC57B300F",
+                    },
+                  },
+                  Object {
+                    "Name": "Stage",
+                    "Value": "$default",
+                  },
+                ],
+                "MetricName": "Latency",
+                "Namespace": "AWS/ApiGateway",
+              },
+              "Period": 300,
+              "Stat": "tm95",
+            },
+            "ReturnData": true,
+          },
+        ],
+        "Threshold": 295,
+        "TreatMissingData": "notBreaching",
+      },
+      "Type": "AWS::CloudWatch::Alarm",
+    },
     "ScopeTestDummyApiLatencyTM9999Warning4181DE97": Object {
       "Properties": Object {
         "ActionsEnabled": true,