@rio-cloud/cdk-v2-constructs 4.32.0 → 4.33.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/API.md CHANGED
@@ -607,19 +607,25 @@ The tree node.
607
607
 
608
608
  ### AwsEcsAbruptlyStoppedMonitor <a name="AwsEcsAbruptlyStoppedMonitor" id="@rio-cloud/cdk-v2-constructs.AwsEcsAbruptlyStoppedMonitor"></a>
609
609
 
610
- # WARNING: This construct is still on beta phase.
610
+ # WARNING: This construct is still in the beta phase.
611
611
 
612
- The construct creates monitoring for detecting ECS containers that were stopped abruptly for reasons such as,
613
- out of memory, failed health checks.
612
+ The construct creates monitoring for detecting ECS containers that were stopped abruptly by AWS for reasons such as,
613
+ out of memory, or failed health checks.
614
614
 
615
- The monitor will consume the ECS events and send them to a CloudWatch log group, which are forwarded to Datadog for
616
- better analyses and trigger an alert.
615
+ This monitor adds transparency to such cases, which otherwise would happen without being noticed and could escalate
616
+ to bigger issues, like a service that requires more resources to run properly.
617
617
 
618
- More details on the AWS ECS events can be found here:
619
- {@link https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html}
618
+ The construct will consume the ECS events and send them to a CloudWatch log group, which are forwarded to Datadog,
619
+ allowing better analyses since AWS keeps the stopped task details for only one hour and will be used to create a
620
+ monitor.
620
621
 
621
- This monitor adds transparency to such cases, which otherwise would happen without being noticed and could escalate
622
- to bigger issues, like a service being that requires more resources.
622
+ Contributions are more than welcome, please get in touch with Team Outbound to ensure compatibility.
623
+
624
+ This construct was based on an AWS blog post about ECS anomaly detection, see here:
625
+ {@link https://aws.amazon.com/blogs/containers/amazon-elastic-container-service-anomaly-detection-using-amazon-eventbridge/}.
626
+
627
+ More details on the AWS ECS events can be found here:
628
+ {@link https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html}.
623
629
 
624
630
  #### Initializers <a name="Initializers" id="@rio-cloud/cdk-v2-constructs.AwsEcsAbruptlyStoppedMonitor.Initializer"></a>
625
631
 
@@ -7996,6 +8002,7 @@ const dataDogMetricAlarmProps: DataDogMetricAlarmProps = { ... }
7996
8002
  | <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | Comparison to use to check if metric is breaching. |
7997
8003
  | <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
7998
8004
  | <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.Metric</code> | The CloudWatch metric used as source for the alarm. |
8005
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.priority">priority</a></code> | <code>number</code> | priority. |
7999
8006
  | <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
8000
8007
  | <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | Sets how this alarm is to handle missing data points. |
8001
8008
  | <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.dataDogOpsGenieIntegrationName">dataDogOpsGenieIntegrationName</a></code> | <code>string</code> | The name of DataDog's OpsGenie integration. |
@@ -8053,6 +8060,18 @@ The CloudWatch metric used as source for the alarm.
8053
8060
 
8054
8061
  ---
8055
8062
 
8063
+ ##### `priority`<sup>Required</sup> <a name="priority" id="@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.priority"></a>
8064
+
8065
+ ```typescript
8066
+ public readonly priority: number;
8067
+ ```
8068
+
8069
+ - *Type:* number
8070
+
8071
+ priority.
8072
+
8073
+ ---
8074
+
8056
8075
  ##### `threshold`<sup>Required</sup> <a name="threshold" id="@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.threshold"></a>
8057
8076
 
8058
8077
  ```typescript
@@ -8532,43 +8551,66 @@ const ecsAbruptlyStoppedMonitorProps: EcsAbruptlyStoppedMonitorProps = { ... }
8532
8551
 
8533
8552
  | **Name** | **Type** | **Description** |
8534
8553
  | --- | --- | --- |
8535
- | <code><a href="#@rio-cloud/cdk-v2-constructs.EcsAbruptlyStoppedMonitorProps.property.notification">notification</a></code> | <code>@rio-cloud/cdk-v2-constructs.datadogv2.INotification</code> | *No description.* |
8536
- | <code><a href="#@rio-cloud/cdk-v2-constructs.EcsAbruptlyStoppedMonitorProps.property.serviceName">serviceName</a></code> | <code>string</code> | *No description.* |
8537
- | <code><a href="#@rio-cloud/cdk-v2-constructs.EcsAbruptlyStoppedMonitorProps.property.clusterArn">clusterArn</a></code> | <code>string</code> | ARN of the cluster that should be monitored. |
8554
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.EcsAbruptlyStoppedMonitorProps.property.serviceName">serviceName</a></code> | <code>string</code> | The name of the service to which the monitor belongs. |
8555
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.EcsAbruptlyStoppedMonitorProps.property.clusterArn">clusterArn</a></code> | <code>string</code> | ARN of the cluster that should be monitored, consuming only ECS events belonging to the cluster. |
8556
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.EcsAbruptlyStoppedMonitorProps.property.notification">notification</a></code> | <code>@rio-cloud/cdk-v2-constructs.datadogv2.INotification</code> | To explicitly disable notifications use {@link NoNotification }. |
8557
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.EcsAbruptlyStoppedMonitorProps.property.priority">priority</a></code> | <code>number</code> | The alert priority of the monitor. |
8538
8558
 
8539
8559
  ---
8540
8560
 
8541
- ##### `notification`<sup>Required</sup> <a name="notification" id="@rio-cloud/cdk-v2-constructs.EcsAbruptlyStoppedMonitorProps.property.notification"></a>
8561
+ ##### `serviceName`<sup>Required</sup> <a name="serviceName" id="@rio-cloud/cdk-v2-constructs.EcsAbruptlyStoppedMonitorProps.property.serviceName"></a>
8542
8562
 
8543
8563
  ```typescript
8544
- public readonly notification: INotification;
8564
+ public readonly serviceName: string;
8545
8565
  ```
8546
8566
 
8547
- - *Type:* @rio-cloud/cdk-v2-constructs.datadogv2.INotification
8567
+ - *Type:* string
8568
+
8569
+ The name of the service to which the monitor belongs.
8570
+
8571
+ Used to generate the monitor name as well a apply the `service` tag.
8548
8572
 
8549
8573
  ---
8550
8574
 
8551
- ##### `serviceName`<sup>Required</sup> <a name="serviceName" id="@rio-cloud/cdk-v2-constructs.EcsAbruptlyStoppedMonitorProps.property.serviceName"></a>
8575
+ ##### `clusterArn`<sup>Optional</sup> <a name="clusterArn" id="@rio-cloud/cdk-v2-constructs.EcsAbruptlyStoppedMonitorProps.property.clusterArn"></a>
8552
8576
 
8553
8577
  ```typescript
8554
- public readonly serviceName: string;
8578
+ public readonly clusterArn: string;
8555
8579
  ```
8556
8580
 
8557
8581
  - *Type:* string
8558
8582
 
8583
+ ARN of the cluster that should be monitored, consuming only ECS events belonging to the cluster.
8584
+
8585
+ If no cluster is provided, the monitor will consume ECS events for all clusters within the account.
8586
+
8559
8587
  ---
8560
8588
 
8561
- ##### `clusterArn`<sup>Optional</sup> <a name="clusterArn" id="@rio-cloud/cdk-v2-constructs.EcsAbruptlyStoppedMonitorProps.property.clusterArn"></a>
8589
+ ##### `notification`<sup>Optional</sup> <a name="notification" id="@rio-cloud/cdk-v2-constructs.EcsAbruptlyStoppedMonitorProps.property.notification"></a>
8562
8590
 
8563
8591
  ```typescript
8564
- public readonly clusterArn: string;
8592
+ public readonly notification: INotification;
8565
8593
  ```
8566
8594
 
8567
- - *Type:* string
8595
+ - *Type:* @rio-cloud/cdk-v2-constructs.datadogv2.INotification
8596
+ - *Default:* {@link DefaultSlackNotification }
8568
8597
 
8569
- ARN of the cluster that should be monitored.
8598
+ To explicitly disable notifications use {@link NoNotification }.
8570
8599
 
8571
- If no cluster is provided, all ECS will be part of the monitor.
8600
+ > [https://docs.datadoghq.com/monitors/notify](https://docs.datadoghq.com/monitors/notify)
8601
+
8602
+ ---
8603
+
8604
+ ##### `priority`<sup>Optional</sup> <a name="priority" id="@rio-cloud/cdk-v2-constructs.EcsAbruptlyStoppedMonitorProps.property.priority"></a>
8605
+
8606
+ ```typescript
8607
+ public readonly priority: number;
8608
+ ```
8609
+
8610
+ - *Type:* number
8611
+ - *Default:* {@link DatadogMonitor.DEFAULT_PRIORITY }
8612
+
8613
+ The alert priority of the monitor.
8572
8614
 
8573
8615
  ---
8574
8616
 
@@ -10320,6 +10362,72 @@ The soft limit is 10 days but can be increased upon requests.
10320
10362
 
10321
10363
  ---
10322
10364
 
10365
+ ### LogErrorMonitorProps <a name="LogErrorMonitorProps" id="@rio-cloud/cdk-v2-constructs.watchfulv2.LogErrorMonitorProps"></a>
10366
+
10367
+ Log error monitor props.
10368
+
10369
+ #### Initializer <a name="Initializer" id="@rio-cloud/cdk-v2-constructs.watchfulv2.LogErrorMonitorProps.Initializer"></a>
10370
+
10371
+ ```typescript
10372
+ import { watchfulv2 } from '@rio-cloud/cdk-v2-constructs'
10373
+
10374
+ const logErrorMonitorProps: watchfulv2.LogErrorMonitorProps = { ... }
10375
+ ```
10376
+
10377
+ #### Properties <a name="Properties" id="Properties"></a>
10378
+
10379
+ | **Name** | **Type** | **Description** |
10380
+ | --- | --- | --- |
10381
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.watchfulv2.LogErrorMonitorProps.property.createCasesFromErrorLogMonitors">createCasesFromErrorLogMonitors</a></code> | <code>boolean</code> | Enable error log monitors creating cases in Datadog. |
10382
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.watchfulv2.LogErrorMonitorProps.property.disableAutoClose">disableAutoClose</a></code> | <code>boolean</code> | Configure if monitor needs to be resolved manually every time. |
10383
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.watchfulv2.LogErrorMonitorProps.property.priority">priority</a></code> | <code>number</code> | Set the priority of the log error monitor. |
10384
+
10385
+ ---
10386
+
10387
+ ##### `createCasesFromErrorLogMonitors`<sup>Optional</sup> <a name="createCasesFromErrorLogMonitors" id="@rio-cloud/cdk-v2-constructs.watchfulv2.LogErrorMonitorProps.property.createCasesFromErrorLogMonitors"></a>
10388
+
10389
+ ```typescript
10390
+ public readonly createCasesFromErrorLogMonitors: boolean;
10391
+ ```
10392
+
10393
+ - *Type:* boolean
10394
+ - *Default:* {@link false }
10395
+
10396
+ Enable error log monitors creating cases in Datadog.
10397
+
10398
+ This property has been deprecated. The propery has been instead nested into logErrorMonitorConfig.
10399
+ The functionality remains unchanged
10400
+
10401
+ ---
10402
+
10403
+ ##### `disableAutoClose`<sup>Optional</sup> <a name="disableAutoClose" id="@rio-cloud/cdk-v2-constructs.watchfulv2.LogErrorMonitorProps.property.disableAutoClose"></a>
10404
+
10405
+ ```typescript
10406
+ public readonly disableAutoClose: boolean;
10407
+ ```
10408
+
10409
+ - *Type:* boolean
10410
+ - *Default:* false
10411
+
10412
+ Configure if monitor needs to be resolved manually every time.
10413
+
10414
+ This option also sets the renotify interval to 2 hours
10415
+
10416
+ ---
10417
+
10418
+ ##### `priority`<sup>Optional</sup> <a name="priority" id="@rio-cloud/cdk-v2-constructs.watchfulv2.LogErrorMonitorProps.property.priority"></a>
10419
+
10420
+ ```typescript
10421
+ public readonly priority: number;
10422
+ ```
10423
+
10424
+ - *Type:* number
10425
+ - *Default:* 3
10426
+
10427
+ Set the priority of the log error monitor.
10428
+
10429
+ ---
10430
+
10323
10431
  ### MetricAlarmProps <a name="MetricAlarmProps" id="@rio-cloud/cdk-v2-constructs.MetricAlarmProps"></a>
10324
10432
 
10325
10433
  An interface to define a generic alarm that can be used in DataDog as well as in CloudWatch.
@@ -10340,6 +10448,7 @@ const metricAlarmProps: MetricAlarmProps = { ... }
10340
10448
  | <code><a href="#@rio-cloud/cdk-v2-constructs.MetricAlarmProps.property.comparisonOperator">comparisonOperator</a></code> | <code>aws-cdk-lib.aws_cloudwatch.ComparisonOperator</code> | Comparison to use to check if metric is breaching. |
10341
10449
  | <code><a href="#@rio-cloud/cdk-v2-constructs.MetricAlarmProps.property.evaluationPeriods">evaluationPeriods</a></code> | <code>number</code> | The number of periods over which data is compared to the specified threshold. |
10342
10450
  | <code><a href="#@rio-cloud/cdk-v2-constructs.MetricAlarmProps.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.Metric</code> | The CloudWatch metric used as source for the alarm. |
10451
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.MetricAlarmProps.property.priority">priority</a></code> | <code>number</code> | priority. |
10343
10452
  | <code><a href="#@rio-cloud/cdk-v2-constructs.MetricAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
10344
10453
  | <code><a href="#@rio-cloud/cdk-v2-constructs.MetricAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | Sets how this alarm is to handle missing data points. |
10345
10454
 
@@ -10394,6 +10503,18 @@ The CloudWatch metric used as source for the alarm.
10394
10503
 
10395
10504
  ---
10396
10505
 
10506
+ ##### `priority`<sup>Required</sup> <a name="priority" id="@rio-cloud/cdk-v2-constructs.MetricAlarmProps.property.priority"></a>
10507
+
10508
+ ```typescript
10509
+ public readonly priority: number;
10510
+ ```
10511
+
10512
+ - *Type:* number
10513
+
10514
+ priority.
10515
+
10516
+ ---
10517
+
10397
10518
  ##### `threshold`<sup>Required</sup> <a name="threshold" id="@rio-cloud/cdk-v2-constructs.MetricAlarmProps.property.threshold"></a>
10398
10519
 
10399
10520
  ```typescript
@@ -10951,6 +11072,39 @@ public readonly secretsFilePath: string;
10951
11072
 
10952
11073
  ---
10953
11074
 
11075
+ ### QueryErrorMonitorProps <a name="QueryErrorMonitorProps" id="@rio-cloud/cdk-v2-constructs.watchfulv2.QueryErrorMonitorProps"></a>
11076
+
11077
+ Query error monitor props.
11078
+
11079
+ #### Initializer <a name="Initializer" id="@rio-cloud/cdk-v2-constructs.watchfulv2.QueryErrorMonitorProps.Initializer"></a>
11080
+
11081
+ ```typescript
11082
+ import { watchfulv2 } from '@rio-cloud/cdk-v2-constructs'
11083
+
11084
+ const queryErrorMonitorProps: watchfulv2.QueryErrorMonitorProps = { ... }
11085
+ ```
11086
+
11087
+ #### Properties <a name="Properties" id="Properties"></a>
11088
+
11089
+ | **Name** | **Type** | **Description** |
11090
+ | --- | --- | --- |
11091
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.watchfulv2.QueryErrorMonitorProps.property.priority">priority</a></code> | <code>number</code> | Set the priority of the log error monitor. |
11092
+
11093
+ ---
11094
+
11095
+ ##### `priority`<sup>Optional</sup> <a name="priority" id="@rio-cloud/cdk-v2-constructs.watchfulv2.QueryErrorMonitorProps.property.priority"></a>
11096
+
11097
+ ```typescript
11098
+ public readonly priority: number;
11099
+ ```
11100
+
11101
+ - *Type:* number
11102
+ - *Default:* 3
11103
+
11104
+ Set the priority of the log error monitor.
11105
+
11106
+ ---
11107
+
10954
11108
  ### RioBitBucketSourceActionProps <a name="RioBitBucketSourceActionProps" id="@rio-cloud/cdk-v2-constructs.RioBitBucketSourceActionProps"></a>
10955
11109
 
10956
11110
  #### Initializer <a name="Initializer" id="@rio-cloud/cdk-v2-constructs.RioBitBucketSourceActionProps.Initializer"></a>
@@ -12987,12 +13141,16 @@ const watchfulProps: watchfulv2.WatchfulProps = { ... }
12987
13141
  | **Name** | **Type** | **Description** |
12988
13142
  | --- | --- | --- |
12989
13143
  | <code><a href="#@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.createCasesFromErrorLogMonitors">createCasesFromErrorLogMonitors</a></code> | <code>boolean</code> | Enable error log monitors creating cases in Datadog. |
13144
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.logErrorMonitorConfig">logErrorMonitorConfig</a></code> | <code>@rio-cloud/cdk-v2-constructs.watchfulv2.LogErrorMonitorProps</code> | Configure log error monitor properties. |
12990
13145
  | <code><a href="#@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.notification">notification</a></code> | <code>@rio-cloud/cdk-v2-constructs.datadogv2.INotification</code> | Set the way how monitors should notify in case of an alert. |
13146
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.queryErrorMonitorConfig">queryErrorMonitorConfig</a></code> | <code>@rio-cloud/cdk-v2-constructs.watchfulv2.QueryErrorMonitorProps</code> | Configure query alert monitors. |
12991
13147
  | <code><a href="#@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.serviceName">serviceName</a></code> | <code>string</code> | The service name. |
12992
13148
 
12993
13149
  ---
12994
13150
 
12995
- ##### `createCasesFromErrorLogMonitors`<sup>Optional</sup> <a name="createCasesFromErrorLogMonitors" id="@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.createCasesFromErrorLogMonitors"></a>
13151
+ ##### ~~`createCasesFromErrorLogMonitors`~~<sup>Optional</sup> <a name="createCasesFromErrorLogMonitors" id="@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.createCasesFromErrorLogMonitors"></a>
13152
+
13153
+ - *Deprecated:* This property has been deprecated. The propery has been instead nested into logErrorMonitorConfig. The functionality remains unchanged.
12996
13154
 
12997
13155
  ```typescript
12998
13156
  public readonly createCasesFromErrorLogMonitors: boolean;
@@ -13005,6 +13163,18 @@ Enable error log monitors creating cases in Datadog.
13005
13163
 
13006
13164
  ---
13007
13165
 
13166
+ ##### `logErrorMonitorConfig`<sup>Optional</sup> <a name="logErrorMonitorConfig" id="@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.logErrorMonitorConfig"></a>
13167
+
13168
+ ```typescript
13169
+ public readonly logErrorMonitorConfig: LogErrorMonitorProps;
13170
+ ```
13171
+
13172
+ - *Type:* @rio-cloud/cdk-v2-constructs.watchfulv2.LogErrorMonitorProps
13173
+
13174
+ Configure log error monitor properties.
13175
+
13176
+ ---
13177
+
13008
13178
  ##### `notification`<sup>Optional</sup> <a name="notification" id="@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.notification"></a>
13009
13179
 
13010
13180
  ```typescript
@@ -13018,6 +13188,21 @@ Set the way how monitors should notify in case of an alert.
13018
13188
 
13019
13189
  ---
13020
13190
 
13191
+ ##### `queryErrorMonitorConfig`<sup>Optional</sup> <a name="queryErrorMonitorConfig" id="@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.queryErrorMonitorConfig"></a>
13192
+
13193
+ ```typescript
13194
+ public readonly queryErrorMonitorConfig: QueryErrorMonitorProps;
13195
+ ```
13196
+
13197
+ - *Type:* @rio-cloud/cdk-v2-constructs.watchfulv2.QueryErrorMonitorProps
13198
+
13199
+ Configure query alert monitors.
13200
+
13201
+ All monitors created by watchful except for Log error monitor.
13202
+ Configure property *logErrorMonitor* for Log error monitor.
13203
+
13204
+ ---
13205
+
13021
13206
  ##### `serviceName`<sup>Optional</sup> <a name="serviceName" id="@rio-cloud/cdk-v2-constructs.watchfulv2.WatchfulProps.property.serviceName"></a>
13022
13207
 
13023
13208
  ```typescript
package/CHANGELOG.md CHANGED
@@ -2,6 +2,26 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [4.33.1](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.33.0&sourceBranch=refs%2Ftags%2Fv4.33.1) (2024-04-24)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * :boom: * The default threshold for watchful v2 alatams has been changed. Priotiy override and disabling of auto close of error monitor has also been added. ([eda81da](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/commits/eda81da35a70f78e0bc6b34fda0c0e9ccaaff072))
11
+
12
+ ## [4.33.0](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.32.0&sourceBranch=refs%2Ftags%2Fv4.33.0) (2024-04-17)
13
+
14
+
15
+ ### Features
16
+
17
+ * **pipeline:** Tag CodeBuild projects to improve metrics ([802246e](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/commits/802246ec75ff6dc47c2100010ce54c84ba591bde))
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * Limit write access of KafkaEventSpec custom resource to relevant SNS topic ([78603b5](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/commits/78603b51259afc486816d0fdebe19e02d4c827b8))
23
+ * Revert to original CHANGELOG.md and version.json ([769de0e](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/commits/769de0e1f9ab5b0e181eec86775a37f612010639))
24
+
5
25
  ## [4.32.0](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.31.2&sourceBranch=refs%2Ftags%2Fv4.32.0) (2024-04-08)
6
26
 
7
27
 
package/README.md CHANGED
@@ -18,15 +18,15 @@ $ npm install --save @rio-cloud/cdk-v2-constructs
18
18
 
19
19
  ## See also
20
20
 
21
- * [How to contribut](./CONTRIBUTION.md)
21
+ * [How to contribute](./CONTRIBUTION.md)
22
22
  * [Changelog](./CHANGELOG.md)
23
- * [brief API desciption](./API.md)
23
+ * [brief API description](./API.md)
24
24
 
25
25
  ## Internal documentation for library devs
26
26
  [Documentation](./developers-readme.md)
27
27
 
28
28
  ## FAQ's
29
- - How can I udpate the thresholds of monitors created by watchful?
29
+ - How can I update the thresholds of monitors created by watchful?
30
30
 
31
31
  There is an `overrideAlarmThreshold` method which can be used to override the default watchful thresholds. Please make aure to use the method before the `watchscope` function.
32
32
  Eg -
@@ -1,28 +1,52 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { INotification } from '../../../datadogv2';
3
3
  export interface EcsAbruptlyStoppedMonitorProps {
4
+ /**
5
+ * The name of the service to which the monitor belongs.
6
+ *
7
+ * Used to generate the monitor name as well a apply the `service` tag.
8
+ */
4
9
  readonly serviceName: string;
5
- readonly notification: INotification;
6
10
  /**
7
- * ARN of the cluster that should be monitored.
8
- * If no cluster is provided, all ECS will be part of the monitor.
11
+ * To explicitly disable notifications use {@link NoNotification}.
12
+ *
13
+ * @defaultValue {@link DefaultSlackNotification}
14
+ *
15
+ * @see https://docs.datadoghq.com/monitors/notify
16
+ */
17
+ readonly notification?: INotification;
18
+ /**
19
+ * The alert priority of the monitor
20
+ *
21
+ * @defaultValue {@link DatadogMonitor.DEFAULT_PRIORITY}
22
+ */
23
+ readonly priority?: number;
24
+ /**
25
+ * ARN of the cluster that should be monitored, consuming only ECS events belonging to the cluster.
26
+ * If no cluster is provided, the monitor will consume ECS events for all clusters within the account.
9
27
  */
10
28
  readonly clusterArn?: string;
11
29
  }
12
30
  /**
13
- * # WARNING: This construct is still on beta phase.
31
+ * # WARNING: This construct is still in the beta phase.
14
32
  *
15
- * The construct creates monitoring for detecting ECS containers that were stopped abruptly for reasons such as,
16
- * out of memory, failed health checks.
33
+ * The construct creates monitoring for detecting ECS containers that were stopped abruptly by AWS for reasons such as,
34
+ * out of memory, or failed health checks.
17
35
  *
18
- * The monitor will consume the ECS events and send them to a CloudWatch log group, which are forwarded to Datadog for
19
- * better analyses and trigger an alert.
36
+ * This monitor adds transparency to such cases, which otherwise would happen without being noticed and could escalate
37
+ * to bigger issues, like a service that requires more resources to run properly.
20
38
  *
21
- * More details on the AWS ECS events can be found here:
22
- * {@link https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html}
39
+ * The construct will consume the ECS events and send them to a CloudWatch log group, which are forwarded to Datadog,
40
+ * allowing better analyses since AWS keeps the stopped task details for only one hour and will be used to create a
41
+ * monitor.
23
42
  *
24
- * This monitor adds transparency to such cases, which otherwise would happen without being noticed and could escalate
25
- * to bigger issues, like a service being that requires more resources.
43
+ * Contributions are more than welcome, please get in touch with Team Outbound to ensure compatibility.
44
+ *
45
+ * This construct was based on an AWS blog post about ECS anomaly detection, see here:
46
+ * {@link https://aws.amazon.com/blogs/containers/amazon-elastic-container-service-anomaly-detection-using-amazon-eventbridge/}.
47
+ *
48
+ * More details on the AWS ECS events can be found here:
49
+ * {@link https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html}.
26
50
  */
27
51
  export declare class AwsEcsAbruptlyStoppedMonitor extends Construct {
28
52
  constructor(scope: Construct, id: string, props: EcsAbruptlyStoppedMonitorProps);
@@ -7,19 +7,25 @@ const cdk = require("aws-cdk-lib");
7
7
  const constructs_1 = require("constructs");
8
8
  const datadogv2_1 = require("../../../datadogv2");
9
9
  /**
10
- * # WARNING: This construct is still on beta phase.
10
+ * # WARNING: This construct is still in the beta phase.
11
11
  *
12
- * The construct creates monitoring for detecting ECS containers that were stopped abruptly for reasons such as,
13
- * out of memory, failed health checks.
12
+ * The construct creates monitoring for detecting ECS containers that were stopped abruptly by AWS for reasons such as,
13
+ * out of memory, or failed health checks.
14
14
  *
15
- * The monitor will consume the ECS events and send them to a CloudWatch log group, which are forwarded to Datadog for
16
- * better analyses and trigger an alert.
15
+ * This monitor adds transparency to such cases, which otherwise would happen without being noticed and could escalate
16
+ * to bigger issues, like a service that requires more resources to run properly.
17
17
  *
18
- * More details on the AWS ECS events can be found here:
19
- * {@link https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html}
18
+ * The construct will consume the ECS events and send them to a CloudWatch log group, which are forwarded to Datadog,
19
+ * allowing better analyses since AWS keeps the stopped task details for only one hour and will be used to create a
20
+ * monitor.
20
21
  *
21
- * This monitor adds transparency to such cases, which otherwise would happen without being noticed and could escalate
22
- * to bigger issues, like a service being that requires more resources.
22
+ * Contributions are more than welcome, please get in touch with Team Outbound to ensure compatibility.
23
+ *
24
+ * This construct was based on an AWS blog post about ECS anomaly detection, see here:
25
+ * {@link https://aws.amazon.com/blogs/containers/amazon-elastic-container-service-anomaly-detection-using-amazon-eventbridge/}.
26
+ *
27
+ * More details on the AWS ECS events can be found here:
28
+ * {@link https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html}.
23
29
  */
24
30
  class AwsEcsAbruptlyStoppedMonitor extends constructs_1.Construct {
25
31
  constructor(scope, id, props) {
@@ -59,7 +65,7 @@ class AwsEcsAbruptlyStoppedMonitor extends constructs_1.Construct {
59
65
  query: `logs("account_id:${cdk.Stack.of(this).account} @aws.awslogs.logGroup:\"${ecsStateChangeLogGroup.logGroupName}\"").index("*").rollup("count").last("5m") >= 1`,
60
66
  message: '{{#is_alert}}There are unexpected ECS status changes in the account ' +
61
67
  '{{log.tags.account_id}}, more details here {{log.link}} {{/is_alert}}',
62
- priority: 3,
68
+ priority: props.priority ?? datadogv2_1.DatadogMonitor.DEFAULT_PRIORITY,
63
69
  notification: props.notification,
64
70
  });
65
71
  }
@@ -67,4 +73,4 @@ class AwsEcsAbruptlyStoppedMonitor extends constructs_1.Construct {
67
73
  exports.AwsEcsAbruptlyStoppedMonitor = AwsEcsAbruptlyStoppedMonitor;
68
74
  _a = JSII_RTTI_SYMBOL_1;
69
75
  AwsEcsAbruptlyStoppedMonitor[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.AwsEcsAbruptlyStoppedMonitor", version: "0.0.0" };
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVjcy1hYnJ1cHRseS1zdG9wcGVkLW1vbml0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJpYnV0aW9ucy90ZWFtLW91Ym91dC1vcmRlci1ib29rL2F3cy1lY3MtYWJydXB0bHktc3RvcHBlZC1tb25pdG9yL2F3cy1lY3MtYWJydXB0bHktc3RvcHBlZC1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUF1QztBQUN2QyxrREFBaUc7QUFZakc7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFhLDRCQUE2QixTQUFRLHNCQUFTO0lBQ3pELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLHNCQUFzQixHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLHdCQUF3QixDQUFDLENBQUM7UUFFekYsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsNEJBQTRCLEVBQUU7WUFDaEUsWUFBWSxFQUFFLHNCQUFzQixDQUFDLFlBQVk7WUFDakQsU0FBUyxFQUFFLENBQUM7U0FDYixDQUFDLENBQUM7UUFFSCw0Q0FBNEM7UUFDNUMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDbEQsWUFBWSxFQUFFO2dCQUNaLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQztnQkFDbkIsVUFBVSxFQUFFLENBQUMsdUJBQXVCLEVBQUUscUNBQXFDLEVBQUUsb0JBQW9CLENBQUM7Z0JBQ2xHLE1BQU0sRUFBRTtvQkFDTixhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQzFCLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQztvQkFDdkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztpQkFDNUQ7YUFDRjtZQUNELE9BQU8sRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLENBQUM7U0FDakYsQ0FBQyxDQUFDO1FBRUgsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FDdkUsSUFBSSxFQUNKLGtDQUFrQyxFQUNsQztZQUNFLFdBQVcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxtREFBbUQsQ0FBQztZQUNwRixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGLENBQUM7UUFFRixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLHlCQUF5QixFQUFFO1lBQ25FLFdBQVcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQztZQUNoRixhQUFhLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUMvQyx5QkFBeUIsRUFDekIscUNBQXFDLENBQ3RDO1lBQ0QsUUFBUSxFQUFFLHNCQUFzQjtTQUNqQyxDQUFDLENBQUM7UUFFSCw0RkFBNEY7UUFDNUYsSUFBSSwwQkFBYyxDQUFDLElBQUksRUFBRSwrQkFBK0IsRUFBRTtZQUN4RCxJQUFJLEVBQUUsK0JBQStCO1lBQ3JDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixXQUFXLEVBQUUsd0NBQTRCLENBQUMsU0FBUztZQUNuRCxLQUFLLEVBQUUsb0JBQW9CLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sNEJBQ25ELHNCQUFzQixDQUFDLFlBQ3pCLGlEQUFpRDtZQUNqRCxPQUFPLEVBQUUsc0VBQXNFO2dCQUNyRSx1RUFBdUU7WUFDakYsUUFBUSxFQUFFLENBQUM7WUFDWCxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF4REgsb0VBeURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRGF0YWRvZ01vbml0b3IsIERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUsIElOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi8uLi9kYXRhZG9ndjInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVjc0FicnVwdGx5U3RvcHBlZE1vbml0b3JQcm9wcyB7XG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbjogSU5vdGlmaWNhdGlvbjtcbiAgLyoqXG4gICAgICogQVJOIG9mIHRoZSBjbHVzdGVyIHRoYXQgc2hvdWxkIGJlIG1vbml0b3JlZC5cbiAgICAgKiBJZiBubyBjbHVzdGVyIGlzIHByb3ZpZGVkLCBhbGwgRUNTIHdpbGwgYmUgcGFydCBvZiB0aGUgbW9uaXRvci5cbiAgICAgKi9cbiAgcmVhZG9ubHkgY2x1c3RlckFybj86IHN0cmluZztcbn1cblxuLyoqXG4gKiAjIFdBUk5JTkc6IFRoaXMgY29uc3RydWN0IGlzIHN0aWxsIG9uIGJldGEgcGhhc2UuXG4gKlxuICogVGhlIGNvbnN0cnVjdCBjcmVhdGVzIG1vbml0b3JpbmcgZm9yIGRldGVjdGluZyBFQ1MgY29udGFpbmVycyB0aGF0IHdlcmUgc3RvcHBlZCBhYnJ1cHRseSBmb3IgcmVhc29ucyBzdWNoIGFzLFxuICogb3V0IG9mIG1lbW9yeSwgZmFpbGVkIGhlYWx0aCBjaGVja3MuXG4gKlxuICogVGhlIG1vbml0b3Igd2lsbCBjb25zdW1lIHRoZSBFQ1MgZXZlbnRzIGFuZCBzZW5kIHRoZW0gdG8gYSBDbG91ZFdhdGNoIGxvZyBncm91cCwgd2hpY2ggYXJlIGZvcndhcmRlZCB0byBEYXRhZG9nIGZvclxuICogYmV0dGVyIGFuYWx5c2VzIGFuZCB0cmlnZ2VyIGFuIGFsZXJ0LlxuICpcbiAqIE1vcmUgZGV0YWlscyBvbiB0aGUgQVdTIEVDUyBldmVudHMgY2FuIGJlIGZvdW5kIGhlcmU6XG4gKiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvZWNzX2N3ZV9ldmVudHMuaHRtbH1cbiAqXG4gKiBUaGlzIG1vbml0b3IgYWRkcyB0cmFuc3BhcmVuY3kgdG8gc3VjaCBjYXNlcywgd2hpY2ggb3RoZXJ3aXNlIHdvdWxkIGhhcHBlbiB3aXRob3V0IGJlaW5nIG5vdGljZWQgYW5kIGNvdWxkIGVzY2FsYXRlXG4gKiB0byBiaWdnZXIgaXNzdWVzLCBsaWtlIGEgc2VydmljZSBiZWluZyB0aGF0IHJlcXVpcmVzIG1vcmUgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgQXdzRWNzQWJydXB0bHlTdG9wcGVkTW9uaXRvciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFY3NBYnJ1cHRseVN0b3BwZWRNb25pdG9yUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZWNzU3RhdGVDaGFuZ2VMb2dHcm91cCA9IG5ldyBjZGsuYXdzX2xvZ3MuTG9nR3JvdXAodGhpcywgJ0Vjc1N0YXRlQ2hhbmdlTG9nR3JvdXAnKTtcblxuICAgIG5ldyBjZGsuYXdzX2xvZ3MuTG9nUmV0ZW50aW9uKHRoaXMsICdFY3NTdGF0ZUNoYW5nZUxvZ1JldGVudGlvbicsIHtcbiAgICAgIGxvZ0dyb3VwTmFtZTogZWNzU3RhdGVDaGFuZ2VMb2dHcm91cC5sb2dHcm91cE5hbWUsXG4gICAgICByZXRlbnRpb246IDMsXG4gICAgfSk7XG5cbiAgICAvLyBSdWxlIHRvIGNvdmVyIGFsbCBjbHVzdGVycyBzdGF0dXMgY2hhbmdlc1xuICAgIG5ldyBjZGsuYXdzX2V2ZW50cy5SdWxlKHRoaXMsICdFY3NTdGF0ZUNoYW5nZVJ1bGUnLCB7XG4gICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgc291cmNlOiBbJ2F3cy5lY3MnXSxcbiAgICAgICAgZGV0YWlsVHlwZTogWydFQ1MgVGFzayBTdGF0ZSBDaGFuZ2UnLCAnRUNTIENvbnRhaW5lciBJbnN0YW5jZSBTdGF0ZSBDaGFuZ2UnLCAnRUNTIFNlcnZpY2UgQWN0aW9uJ10sXG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIGRlc2lyZWRTdGF0dXM6IFsnU1RPUFBFRCddLFxuICAgICAgICAgIGxhc3RTdGF0dXM6IFsnU1RPUFBFRCddLFxuICAgICAgICAgIC4uLihwcm9wcy5jbHVzdGVyQXJuICYmIHsgY2x1c3RlckFybjogW3Byb3BzLmNsdXN0ZXJBcm5dIH0pLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRhcmdldHM6IFtuZXcgY2RrLmF3c19ldmVudHNfdGFyZ2V0cy5DbG91ZFdhdGNoTG9nR3JvdXAoZWNzU3RhdGVDaGFuZ2VMb2dHcm91cCldLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbG9nRm9yd2FyZGVyTGFtYmRhID0gY2RrLmF3c19sYW1iZGEuRnVuY3Rpb24uZnJvbUZ1bmN0aW9uQXR0cmlidXRlcyhcbiAgICAgIHRoaXMsXG4gICAgICAnRWNzU3RhdGVDaGFuZ2VMb2dGb3J3YXJkZXJMYW1iZGEnLFxuICAgICAge1xuICAgICAgICBmdW5jdGlvbkFybjogY2RrLkZuLmltcG9ydFZhbHVlKCdjdXN0b20tcmVzb3VyY2UtZGF0YWRvZy1sb2dmb3J3YXJkZXItZnVuY3Rpb24tYXJuJyksXG4gICAgICAgIHNhbWVFbnZpcm9ubWVudDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIG5ldyBjZGsuYXdzX2xvZ3MuU3Vic2NyaXB0aW9uRmlsdGVyKHRoaXMsICdFY3NTdGF0ZUNoYW5nZUxvZ0ZpbHRlcicsIHtcbiAgICAgIGRlc3RpbmF0aW9uOiBuZXcgY2RrLmF3c19sb2dzX2Rlc3RpbmF0aW9ucy5MYW1iZGFEZXN0aW5hdGlvbihsb2dGb3J3YXJkZXJMYW1iZGEpLFxuICAgICAgZmlsdGVyUGF0dGVybjogY2RrLmF3c19sb2dzLkZpbHRlclBhdHRlcm4uYW55VGVybShcbiAgICAgICAgJ0NvbnRhaW5lciBraWxsZWQgZHVlIHRvJyxcbiAgICAgICAgJ1Rhc2sgZmFpbGVkIGNvbnRhaW5lciBoZWFsdGggY2hlY2tzJyxcbiAgICAgICksXG4gICAgICBsb2dHcm91cDogZWNzU3RhdGVDaGFuZ2VMb2dHcm91cCxcbiAgICB9KTtcblxuICAgIC8vIEFmdGVyIGJlaW5nIG1pZ3JhdGVkIHRvIHRoZSBuZXcgdmVyc2lvbiBpdCBjYW4gYmUgYWRkZWQgdG8gdGhlIENMQUlEIGNvbnN0cnVjdCByZXBvc2l0b3J5XG4gICAgbmV3IERhdGFkb2dNb25pdG9yKHRoaXMsICdFY3NTdGF0ZUNoYW5nZUxvZ0dyb3VwTW9uaXRvcicsIHtcbiAgICAgIG5hbWU6ICdVbmV4cGVjdGVkIEVDUyBzdGF0dXMgY2hhbmdlcycsXG4gICAgICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgICBtb25pdG9yVHlwZTogRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZS5MT0dfQUxFUlQsXG4gICAgICBxdWVyeTogYGxvZ3MoXCJhY2NvdW50X2lkOiR7Y2RrLlN0YWNrLm9mKHRoaXMpLmFjY291bnR9IEBhd3MuYXdzbG9ncy5sb2dHcm91cDpcXFwiJHtcbiAgICAgICAgZWNzU3RhdGVDaGFuZ2VMb2dHcm91cC5sb2dHcm91cE5hbWVcbiAgICAgIH1cXFwiXCIpLmluZGV4KFwiKlwiKS5yb2xsdXAoXCJjb3VudFwiKS5sYXN0KFwiNW1cIikgPj0gMWAsXG4gICAgICBtZXNzYWdlOiAne3sjaXNfYWxlcnR9fVRoZXJlIGFyZSB1bmV4cGVjdGVkIEVDUyBzdGF0dXMgY2hhbmdlcyBpbiB0aGUgYWNjb3VudCAnICtcbiAgICAgICAgICAgICAgICAne3tsb2cudGFncy5hY2NvdW50X2lkfX0sIG1vcmUgZGV0YWlscyBoZXJlIHt7bG9nLmxpbmt9fSB7ey9pc19hbGVydH19JyxcbiAgICAgIHByaW9yaXR5OiAzLFxuICAgICAgbm90aWZpY2F0aW9uOiBwcm9wcy5ub3RpZmljYXRpb24sXG4gICAgfSk7XG4gIH1cbn1cblxuIl19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVjcy1hYnJ1cHRseS1zdG9wcGVkLW1vbml0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJpYnV0aW9ucy90ZWFtLW91Ym91dC1vcmRlci1ib29rL2F3cy1lY3MtYWJydXB0bHktc3RvcHBlZC1tb25pdG9yL2F3cy1lY3MtYWJydXB0bHktc3RvcHBlZC1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUF1QztBQUN2QyxrREFBaUc7QUFvQ2pHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUNILE1BQWEsNEJBQTZCLFNBQVEsc0JBQVM7SUFDekQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQztRQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztRQUV6RixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSw0QkFBNEIsRUFBRTtZQUNoRSxZQUFZLEVBQUUsc0JBQXNCLENBQUMsWUFBWTtZQUNqRCxTQUFTLEVBQUUsQ0FBQztTQUNiLENBQUMsQ0FBQztRQUVILDRDQUE0QztRQUM1QyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRTtZQUNsRCxZQUFZLEVBQUU7Z0JBQ1osTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO2dCQUNuQixVQUFVLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxxQ0FBcUMsRUFBRSxvQkFBb0IsQ0FBQztnQkFDbEcsTUFBTSxFQUFFO29CQUNOLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQztvQkFDMUIsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDO29CQUN2QixHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2lCQUM1RDthQUNGO1lBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUNqRixDQUFDLENBQUM7UUFFSCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUN2RSxJQUFJLEVBQ0osa0NBQWtDLEVBQ2xDO1lBQ0UsV0FBVyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLG1EQUFtRCxDQUFDO1lBQ3BGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQ0YsQ0FBQztRQUVGLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUseUJBQXlCLEVBQUU7WUFDbkUsV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDO1lBQ2hGLGFBQWEsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQy9DLHlCQUF5QixFQUN6QixxQ0FBcUMsQ0FDdEM7WUFDRCxRQUFRLEVBQUUsc0JBQXNCO1NBQ2pDLENBQUMsQ0FBQztRQUVILDRGQUE0RjtRQUM1RixJQUFJLDBCQUFjLENBQUMsSUFBSSxFQUFFLCtCQUErQixFQUFFO1lBQ3hELElBQUksRUFBRSwrQkFBK0I7WUFDckMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFdBQVcsRUFBRSx3Q0FBNEIsQ0FBQyxTQUFTO1lBQ25ELEtBQUssRUFBRSxvQkFBb0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyw0QkFDbkQsc0JBQXNCLENBQUMsWUFDekIsaURBQWlEO1lBQ2pELE9BQU8sRUFBRSxzRUFBc0U7Z0JBQ3JFLHVFQUF1RTtZQUNqRixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsSUFBSSwwQkFBYyxDQUFDLGdCQUFnQjtZQUMzRCxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF4REgsb0VBeURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRGF0YWRvZ01vbml0b3IsIERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUsIElOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi8uLi9kYXRhZG9ndjInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVjc0FicnVwdGx5U3RvcHBlZE1vbml0b3JQcm9wcyB7XG5cbiAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgdG8gd2hpY2ggdGhlIG1vbml0b3IgYmVsb25ncy5cbiAgICAgKlxuICAgICAqIFVzZWQgdG8gZ2VuZXJhdGUgdGhlIG1vbml0b3IgbmFtZSBhcyB3ZWxsIGEgYXBwbHkgdGhlIGBzZXJ2aWNlYCB0YWcuXG4gICAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgICogVG8gZXhwbGljaXRseSBkaXNhYmxlIG5vdGlmaWNhdGlvbnMgdXNlIHtAbGluayBOb05vdGlmaWNhdGlvbn0uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIHtAbGluayBEZWZhdWx0U2xhY2tOb3RpZmljYXRpb259XG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL25vdGlmeVxuICAgICAqL1xuXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbj86IElOb3RpZmljYXRpb247XG5cbiAgLyoqXG4gICAgICogVGhlIGFsZXJ0IHByaW9yaXR5IG9mIHRoZSBtb25pdG9yXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIHtAbGluayBEYXRhZG9nTW9uaXRvci5ERUZBVUxUX1BSSU9SSVRZfVxuICAgICAqL1xuXG4gIHJlYWRvbmx5IHByaW9yaXR5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgICAqIEFSTiBvZiB0aGUgY2x1c3RlciB0aGF0IHNob3VsZCBiZSBtb25pdG9yZWQsIGNvbnN1bWluZyBvbmx5IEVDUyBldmVudHMgYmVsb25naW5nIHRvIHRoZSBjbHVzdGVyLlxuICAgICAqIElmIG5vIGNsdXN0ZXIgaXMgcHJvdmlkZWQsIHRoZSBtb25pdG9yIHdpbGwgY29uc3VtZSBFQ1MgZXZlbnRzIGZvciBhbGwgY2x1c3RlcnMgd2l0aGluIHRoZSBhY2NvdW50LlxuICAgICAqL1xuICByZWFkb25seSBjbHVzdGVyQXJuPzogc3RyaW5nO1xufVxuXG4vKipcbiAqICMgV0FSTklORzogVGhpcyBjb25zdHJ1Y3QgaXMgc3RpbGwgaW4gdGhlIGJldGEgcGhhc2UuXG4gKlxuICogVGhlIGNvbnN0cnVjdCBjcmVhdGVzIG1vbml0b3JpbmcgZm9yIGRldGVjdGluZyBFQ1MgY29udGFpbmVycyB0aGF0IHdlcmUgc3RvcHBlZCBhYnJ1cHRseSBieSBBV1MgZm9yIHJlYXNvbnMgc3VjaCBhcyxcbiAqIG91dCBvZiBtZW1vcnksIG9yIGZhaWxlZCBoZWFsdGggY2hlY2tzLlxuICpcbiAqIFRoaXMgbW9uaXRvciBhZGRzIHRyYW5zcGFyZW5jeSB0byBzdWNoIGNhc2VzLCB3aGljaCBvdGhlcndpc2Ugd291bGQgaGFwcGVuIHdpdGhvdXQgYmVpbmcgbm90aWNlZCBhbmQgY291bGQgZXNjYWxhdGVcbiAqIHRvIGJpZ2dlciBpc3N1ZXMsIGxpa2UgYSBzZXJ2aWNlIHRoYXQgcmVxdWlyZXMgbW9yZSByZXNvdXJjZXMgdG8gcnVuIHByb3Blcmx5LlxuICpcbiAqIFRoZSBjb25zdHJ1Y3Qgd2lsbCBjb25zdW1lIHRoZSBFQ1MgZXZlbnRzIGFuZCBzZW5kIHRoZW0gdG8gYSBDbG91ZFdhdGNoIGxvZyBncm91cCwgd2hpY2ggYXJlIGZvcndhcmRlZCB0byBEYXRhZG9nLFxuICogYWxsb3dpbmcgYmV0dGVyIGFuYWx5c2VzIHNpbmNlIEFXUyBrZWVwcyB0aGUgc3RvcHBlZCB0YXNrIGRldGFpbHMgZm9yIG9ubHkgb25lIGhvdXIgYW5kIHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYVxuICogbW9uaXRvci5cbiAqXG4gKiBDb250cmlidXRpb25zIGFyZSBtb3JlIHRoYW4gd2VsY29tZSwgcGxlYXNlIGdldCBpbiB0b3VjaCB3aXRoIFRlYW0gT3V0Ym91bmQgdG8gZW5zdXJlIGNvbXBhdGliaWxpdHkuXG4gKlxuICogVGhpcyBjb25zdHJ1Y3Qgd2FzIGJhc2VkIG9uIGFuIEFXUyBibG9nIHBvc3QgYWJvdXQgRUNTIGFub21hbHkgZGV0ZWN0aW9uLCBzZWUgaGVyZTpcbiAqIHtAbGluayBodHRwczovL2F3cy5hbWF6b24uY29tL2Jsb2dzL2NvbnRhaW5lcnMvYW1hem9uLWVsYXN0aWMtY29udGFpbmVyLXNlcnZpY2UtYW5vbWFseS1kZXRlY3Rpb24tdXNpbmctYW1hem9uLWV2ZW50YnJpZGdlL30uXG4gKlxuICogTW9yZSBkZXRhaWxzIG9uIHRoZSBBV1MgRUNTIGV2ZW50cyBjYW4gYmUgZm91bmQgaGVyZTpcbiAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNTL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9lY3NfY3dlX2V2ZW50cy5odG1sfS5cbiAqL1xuZXhwb3J0IGNsYXNzIEF3c0Vjc0FicnVwdGx5U3RvcHBlZE1vbml0b3IgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRWNzQWJydXB0bHlTdG9wcGVkTW9uaXRvclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGVjc1N0YXRlQ2hhbmdlTG9nR3JvdXAgPSBuZXcgY2RrLmF3c19sb2dzLkxvZ0dyb3VwKHRoaXMsICdFY3NTdGF0ZUNoYW5nZUxvZ0dyb3VwJyk7XG5cbiAgICBuZXcgY2RrLmF3c19sb2dzLkxvZ1JldGVudGlvbih0aGlzLCAnRWNzU3RhdGVDaGFuZ2VMb2dSZXRlbnRpb24nLCB7XG4gICAgICBsb2dHcm91cE5hbWU6IGVjc1N0YXRlQ2hhbmdlTG9nR3JvdXAubG9nR3JvdXBOYW1lLFxuICAgICAgcmV0ZW50aW9uOiAzLFxuICAgIH0pO1xuXG4gICAgLy8gUnVsZSB0byBjb3ZlciBhbGwgY2x1c3RlcnMgc3RhdHVzIGNoYW5nZXNcbiAgICBuZXcgY2RrLmF3c19ldmVudHMuUnVsZSh0aGlzLCAnRWNzU3RhdGVDaGFuZ2VSdWxlJywge1xuICAgICAgZXZlbnRQYXR0ZXJuOiB7XG4gICAgICAgIHNvdXJjZTogWydhd3MuZWNzJ10sXG4gICAgICAgIGRldGFpbFR5cGU6IFsnRUNTIFRhc2sgU3RhdGUgQ2hhbmdlJywgJ0VDUyBDb250YWluZXIgSW5zdGFuY2UgU3RhdGUgQ2hhbmdlJywgJ0VDUyBTZXJ2aWNlIEFjdGlvbiddLFxuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBkZXNpcmVkU3RhdHVzOiBbJ1NUT1BQRUQnXSxcbiAgICAgICAgICBsYXN0U3RhdHVzOiBbJ1NUT1BQRUQnXSxcbiAgICAgICAgICAuLi4ocHJvcHMuY2x1c3RlckFybiAmJiB7IGNsdXN0ZXJBcm46IFtwcm9wcy5jbHVzdGVyQXJuXSB9KSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB0YXJnZXRzOiBbbmV3IGNkay5hd3NfZXZlbnRzX3RhcmdldHMuQ2xvdWRXYXRjaExvZ0dyb3VwKGVjc1N0YXRlQ2hhbmdlTG9nR3JvdXApXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGxvZ0ZvcndhcmRlckxhbWJkYSA9IGNkay5hd3NfbGFtYmRhLkZ1bmN0aW9uLmZyb21GdW5jdGlvbkF0dHJpYnV0ZXMoXG4gICAgICB0aGlzLFxuICAgICAgJ0Vjc1N0YXRlQ2hhbmdlTG9nRm9yd2FyZGVyTGFtYmRhJyxcbiAgICAgIHtcbiAgICAgICAgZnVuY3Rpb25Bcm46IGNkay5Gbi5pbXBvcnRWYWx1ZSgnY3VzdG9tLXJlc291cmNlLWRhdGFkb2ctbG9nZm9yd2FyZGVyLWZ1bmN0aW9uLWFybicpLFxuICAgICAgICBzYW1lRW52aXJvbm1lbnQ6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBuZXcgY2RrLmF3c19sb2dzLlN1YnNjcmlwdGlvbkZpbHRlcih0aGlzLCAnRWNzU3RhdGVDaGFuZ2VMb2dGaWx0ZXInLCB7XG4gICAgICBkZXN0aW5hdGlvbjogbmV3IGNkay5hd3NfbG9nc19kZXN0aW5hdGlvbnMuTGFtYmRhRGVzdGluYXRpb24obG9nRm9yd2FyZGVyTGFtYmRhKSxcbiAgICAgIGZpbHRlclBhdHRlcm46IGNkay5hd3NfbG9ncy5GaWx0ZXJQYXR0ZXJuLmFueVRlcm0oXG4gICAgICAgICdDb250YWluZXIga2lsbGVkIGR1ZSB0bycsXG4gICAgICAgICdUYXNrIGZhaWxlZCBjb250YWluZXIgaGVhbHRoIGNoZWNrcycsXG4gICAgICApLFxuICAgICAgbG9nR3JvdXA6IGVjc1N0YXRlQ2hhbmdlTG9nR3JvdXAsXG4gICAgfSk7XG5cbiAgICAvLyBBZnRlciBiZWluZyBtaWdyYXRlZCB0byB0aGUgbmV3IHZlcnNpb24gaXQgY2FuIGJlIGFkZGVkIHRvIHRoZSBDTEFJRCBjb25zdHJ1Y3QgcmVwb3NpdG9yeVxuICAgIG5ldyBEYXRhZG9nTW9uaXRvcih0aGlzLCAnRWNzU3RhdGVDaGFuZ2VMb2dHcm91cE1vbml0b3InLCB7XG4gICAgICBuYW1lOiAnVW5leHBlY3RlZCBFQ1Mgc3RhdHVzIGNoYW5nZXMnLFxuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgICAgbW9uaXRvclR5cGU6IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuTE9HX0FMRVJULFxuICAgICAgcXVlcnk6IGBsb2dzKFwiYWNjb3VudF9pZDoke2Nkay5TdGFjay5vZih0aGlzKS5hY2NvdW50fSBAYXdzLmF3c2xvZ3MubG9nR3JvdXA6XFxcIiR7XG4gICAgICAgIGVjc1N0YXRlQ2hhbmdlTG9nR3JvdXAubG9nR3JvdXBOYW1lXG4gICAgICB9XFxcIlwiKS5pbmRleChcIipcIikucm9sbHVwKFwiY291bnRcIikubGFzdChcIjVtXCIpID49IDFgLFxuICAgICAgbWVzc2FnZTogJ3t7I2lzX2FsZXJ0fX1UaGVyZSBhcmUgdW5leHBlY3RlZCBFQ1Mgc3RhdHVzIGNoYW5nZXMgaW4gdGhlIGFjY291bnQgJyArXG4gICAgICAgICAgICAgICAgJ3t7bG9nLnRhZ3MuYWNjb3VudF9pZH19LCBtb3JlIGRldGFpbHMgaGVyZSB7e2xvZy5saW5rfX0ge3svaXNfYWxlcnR9fScsXG4gICAgICBwcmlvcml0eTogcHJvcHMucHJpb3JpdHkgPz8gRGF0YWRvZ01vbml0b3IuREVGQVVMVF9QUklPUklUWSxcbiAgICAgIG5vdGlmaWNhdGlvbjogcHJvcHMubm90aWZpY2F0aW9uLFxuICAgIH0pO1xuICB9XG59XG5cbiJdfQ==
@@ -195,9 +195,12 @@ export declare class PipelineStack extends Stack {
195
195
  private addMainPipeline;
196
196
  private addBranchPipeline;
197
197
  private addVulnerabilityPipeline;
198
+ private createStripAssetsStep;
198
199
  private createCapabilityMonitoringDeployStep;
200
+ private createSecretsDeployStep;
199
201
  private resolveDefaultBuildSpec;
200
202
  private grantPermissionsForKafkaIntegration;
201
203
  private loadBuildSpecFromFile;
202
204
  private renamePipelineToLowerCase;
205
+ private tagCodeBuildProject;
203
206
  }