@rio-cloud/cdk-v2-constructs 4.27.0 → 4.29.0

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
@@ -6233,7 +6233,6 @@ public readonly evaluationDelay: number;
6233
6233
  ```
6234
6234
 
6235
6235
  - *Type:* number
6236
- - *Default:* 900
6237
6236
 
6238
6237
  Time in seconds to delay evaluation.
6239
6238
 
@@ -10330,10 +10329,11 @@ const pipelineStackProps: PipelineStackProps = { ... }
10330
10329
  | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.pipelineType">pipelineType</a></code> | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineType">PipelineType</a></code> | Defines which kind of pipeline is deployed. |
10331
10330
  | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.serviceName">serviceName</a></code> | <code>string</code> | The name of the service - This has to be the same name as the repository as the s3 trigger file created by the bitbucket-integration uses this as a prefix - The serviceName is available as an environment variable SERVICE_NAME in the CodeBuildStep - The serviceName is available in the AppStackProps in the appStackFactory - The serviceName is available as stackName property in the AppStackProps in the appStackFactory. |
10332
10331
  | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.codeBuildOptions">codeBuildOptions</a></code> | <code><a href="#@rio-cloud/cdk-v2-constructs.CodeBuildOptions">CodeBuildOptions</a></code> | CodeBuild options overriding the rio-specific defaults. |
10333
- | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.datadogAlertType">datadogAlertType</a></code> | <code>string</code> | Determines the alert type of the pipeline monitors that trigger an alert. |
10332
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.datadogAlertType">datadogAlertType</a></code> | <code>string</code> | *No description.* |
10334
10333
  | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.monitoringDeployStepProps">monitoringDeployStepProps</a></code> | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackRioMonitoringDeployStepProps">PipelineStackRioMonitoringDeployStepProps</a></code> | If present, the capability monitoring deploy step is added to the pipeline. |
10335
10334
  | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.pipelineSchedules">pipelineSchedules</a></code> | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineSchedulesProps">PipelineSchedulesProps</a></code> | Defines how often the pipeline is triggered automatically. Is defined via a cron expression. |
10336
10335
  | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.secretsDeployStepProps">secretsDeployStepProps</a></code> | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackRioSecretsDeployStepProps">PipelineStackRioSecretsDeployStepProps</a></code> | Path to secrets file containing encrypted secrets. |
10336
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.vulnerabilityNotification">vulnerabilityNotification</a></code> | <code>@rio-cloud/cdk-v2-constructs.datadogv2.INotification</code> | Notification type for the auto-generated vulnerability pipeline monitor. |
10337
10337
 
10338
10338
  ---
10339
10339
 
@@ -10601,7 +10601,10 @@ CodeBuild options overriding the rio-specific defaults.
10601
10601
 
10602
10602
  ---
10603
10603
 
10604
- ##### `datadogAlertType`<sup>Optional</sup> <a name="datadogAlertType" id="@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.datadogAlertType"></a>
10604
+ ##### ~~`datadogAlertType`~~<sup>Optional</sup> <a name="datadogAlertType" id="@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.datadogAlertType"></a>
10605
+
10606
+ - *Deprecated:* Please use the `vulnerabilityNotification` property instead.
10607
+ If `opsgenie` is specified, an Exception is thrown, as this is not supported anymore.
10605
10608
 
10606
10609
  ```typescript
10607
10610
  public readonly datadogAlertType: string;
@@ -10609,10 +10612,6 @@ public readonly datadogAlertType: string;
10609
10612
 
10610
10613
  - *Type:* string
10611
10614
 
10612
- Determines the alert type of the pipeline monitors that trigger an alert.
10613
-
10614
- Default is opsgenie.
10615
-
10616
10615
  ---
10617
10616
 
10618
10617
  ##### `monitoringDeployStepProps`<sup>Optional</sup> <a name="monitoringDeployStepProps" id="@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.monitoringDeployStepProps"></a>
@@ -10661,6 +10660,20 @@ No secrets are deployed if no path is provided.
10661
10660
 
10662
10661
  ---
10663
10662
 
10663
+ ##### `vulnerabilityNotification`<sup>Optional</sup> <a name="vulnerabilityNotification" id="@rio-cloud/cdk-v2-constructs.PipelineStackProps.property.vulnerabilityNotification"></a>
10664
+
10665
+ ```typescript
10666
+ public readonly vulnerabilityNotification: INotification;
10667
+ ```
10668
+
10669
+ - *Type:* @rio-cloud/cdk-v2-constructs.datadogv2.INotification
10670
+
10671
+ Notification type for the auto-generated vulnerability pipeline monitor.
10672
+
10673
+ Defaults to slack.
10674
+
10675
+ ---
10676
+
10664
10677
  ### PipelineStackRioMonitoringDeployStepProps <a name="PipelineStackRioMonitoringDeployStepProps" id="@rio-cloud/cdk-v2-constructs.PipelineStackRioMonitoringDeployStepProps"></a>
10665
10678
 
10666
10679
  #### Initializer <a name="Initializer" id="@rio-cloud/cdk-v2-constructs.PipelineStackRioMonitoringDeployStepProps.Initializer"></a>
package/CHANGELOG.md CHANGED
@@ -1,6 +1,33 @@
1
1
  # Changelog
2
2
 
3
- All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
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
+
5
+ ## [4.29.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.28.0&sourceBranch=refs%2Ftags%2Fv4.29.0) (2024-02-21)
6
+
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ * set evaluationDelay explicitlty if required
11
+
12
+ * chore!(datadogv2): change default evaluationDelay of monitor. ([4d758b0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/4d758b055f96f7960ef85d2b5f08398265344f93))
13
+
14
+
15
+ ### Features
16
+
17
+ * **pipeline:** Switch to new DatadogMonitor (v2) construct ([d0e3ea0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/d0e3ea031b72da859fd5a01e4810aec5f7ed24a3))
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * monitor id returns number but we need string ([65489a5](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/65489a5b0c72e7a68b16eb9060819499cbc99255))
23
+
24
+ ## [4.28.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.27.0&sourceBranch=refs%2Ftags%2Fv4.28.0) (2024-02-08)
25
+
26
+
27
+ ### Features
28
+
29
+ * add ecs abruptly stopped monitor into the contribution folder ([6f9dc42](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/6f9dc4239c13ba6c6d956bb85444e35d0a27b621))
30
+ * Switched to non blocking configuration in case of firelens ([0eebbd8](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/0eebbd8a8bd769d6911f9ab02f499148aeff7e1f))
4
31
 
5
32
  ## [4.27.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.26.0&sourceBranch=refs%2Ftags%2Fv4.27.0) (2024-02-07)
6
33
 
package/README.md CHANGED
@@ -22,6 +22,9 @@ $ npm install --save @rio-cloud/cdk-v2-constructs
22
22
  * [Changelog](./CHANGELOG.md)
23
23
  * [brief API desciption](./API.md)
24
24
 
25
+ ## Internal documentation for library devs
26
+ [Documentation](./developers-readme.md)
27
+
25
28
  ## FAQ's
26
29
  - How can I udpate the thresholds of monitors created by watchful?
27
30
 
@@ -0,0 +1,16 @@
1
+ # Documentation for developers
2
+
3
+ This documentation is intended for the library devs
4
+
5
+ ## Firelens non blocking configuration
6
+
7
+ Firelens logging configured with fargate is using fluentbit under the hood. For making the setup fault tolerant, we are aiming to make the logging setup non-blocking.
8
+ This means that if for some reason the central logging server (Datadog) is not available, the application should not stop working because of that.
9
+
10
+ More details about the setup can found under these links:
11
+
12
+ https://aws.amazon.com/blogs/containers/preventing-log-loss-with-non-blocking-mode-in-the-awslogs-container-log-driver/
13
+
14
+ https://aws.amazon.com/blogs/containers/choosing-container-logging-options-to-avoid-backpressure/
15
+
16
+ Since the setup needs custom config, we are using a central config file stored in s3. To make this happen, we are using special init firelens docker images. More details can be found under [here](https://github.com/aws/aws-for-fluent-bit/blob/mainline/use_cases/init-process-for-fluent-bit/README.md)
@@ -0,0 +1,29 @@
1
+ import { Construct } from 'constructs';
2
+ import { INotification } from '../../../datadogv2';
3
+ export interface EcsAbruptlyStoppedMonitorProps {
4
+ serviceName: string;
5
+ notification: INotification;
6
+ /**
7
+ * ARN of the cluster that should be monitored.
8
+ * If no cluster is provided, all ECS will be part of the monitor.
9
+ */
10
+ clusterArn?: string;
11
+ }
12
+ /**
13
+ * # WARNING: This construct is still on beta phase.
14
+ *
15
+ * The construct creates monitoring for detecting ECS containers that were stopped abruptly for reasons such as,
16
+ * out of memory, failed health checks.
17
+ *
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.
20
+ *
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}
23
+ *
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.
26
+ */
27
+ export declare class AwsEcsAbruptlyStoppedMonitor extends Construct {
28
+ constructor(scope: Construct, id: string, props: EcsAbruptlyStoppedMonitorProps);
29
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AwsEcsAbruptlyStoppedMonitor = void 0;
4
+ const cdk = require("aws-cdk-lib");
5
+ const constructs_1 = require("constructs");
6
+ const datadogv2_1 = require("../../../datadogv2");
7
+ /**
8
+ * # WARNING: This construct is still on beta phase.
9
+ *
10
+ * The construct creates monitoring for detecting ECS containers that were stopped abruptly for reasons such as,
11
+ * out of memory, failed health checks.
12
+ *
13
+ * The monitor will consume the ECS events and send them to a CloudWatch log group, which are forwarded to Datadog for
14
+ * better analyses and trigger an alert.
15
+ *
16
+ * More details on the AWS ECS events can be found here:
17
+ * {@link https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html}
18
+ *
19
+ * This monitor adds transparency to such cases, which otherwise would happen without being noticed and could escalate
20
+ * to bigger issues, like a service being that requires more resources.
21
+ */
22
+ class AwsEcsAbruptlyStoppedMonitor extends constructs_1.Construct {
23
+ constructor(scope, id, props) {
24
+ super(scope, id);
25
+ const ecsStateChangeLogGroup = new cdk.aws_logs.LogGroup(this, 'EcsStateChangeLogGroup');
26
+ new cdk.aws_logs.LogRetention(this, 'EcsStateChangeLogRetention', {
27
+ logGroupName: ecsStateChangeLogGroup.logGroupName,
28
+ retention: 3,
29
+ });
30
+ // Rule to cover all clusters status changes
31
+ new cdk.aws_events.Rule(this, 'EcsStateChangeRule', {
32
+ eventPattern: {
33
+ source: ['aws.ecs'],
34
+ detailType: ['ECS Task State Change', 'ECS Container Instance State Change', 'ECS Service Action'],
35
+ detail: {
36
+ desiredStatus: ['STOPPED'],
37
+ lastStatus: ['STOPPED'],
38
+ ...(props.clusterArn && { clusterArn: [props.clusterArn] }),
39
+ },
40
+ },
41
+ targets: [new cdk.aws_events_targets.CloudWatchLogGroup(ecsStateChangeLogGroup)],
42
+ });
43
+ const logForwarderLambda = cdk.aws_lambda.Function.fromFunctionAttributes(this, 'EcsStateChangeLogForwarderLambda', {
44
+ functionArn: cdk.Fn.importValue('custom-resource-datadog-logforwarder-function-arn'),
45
+ sameEnvironment: true,
46
+ });
47
+ new cdk.aws_logs.SubscriptionFilter(this, 'EcsStateChangeLogFilter', {
48
+ destination: new cdk.aws_logs_destinations.LambdaDestination(logForwarderLambda),
49
+ filterPattern: cdk.aws_logs.FilterPattern.anyTerm('Container killed due to', 'Task failed container health checks'),
50
+ logGroup: ecsStateChangeLogGroup,
51
+ });
52
+ // After being migrated to the new version it can be added to the CLAID construct repository
53
+ new datadogv2_1.DatadogMonitor(this, 'EcsStateChangeLogGroupMonitor', {
54
+ name: 'Unexpected ECS status changes',
55
+ serviceName: props.serviceName,
56
+ monitorType: datadogv2_1.DatadogMonitorQueryAlertType.LOG_ALERT,
57
+ query: `logs("account_id:${cdk.Stack.of(this).account} @aws.awslogs.logGroup:\"${ecsStateChangeLogGroup.logGroupName}\"").index("*").rollup("count").last("5m") >= 1`,
58
+ message: '{{#is_alert}}There are unexpected ECS status changes in the account ' +
59
+ '{{log.tags.account_id}}, more details here {{log.link}} {{/is_alert}}',
60
+ priority: 3,
61
+ notification: props.notification,
62
+ });
63
+ }
64
+ }
65
+ exports.AwsEcsAbruptlyStoppedMonitor = AwsEcsAbruptlyStoppedMonitor;
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVjcy1hYnJ1cHRseS1zdG9wcGVkLW1vbml0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJpYnV0aW9ucy90ZWFtLW91Ym91dC1vcmRlci1ib29rL2F3cy1lY3MtYWJydXB0bHktc3RvcHBlZC1tb25pdG9yL2F3cy1lY3MtYWJydXB0bHktc3RvcHBlZC1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFtQztBQUNuQywyQ0FBdUM7QUFDdkMsa0RBQWlHO0FBWWpHOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBYSw0QkFBNkIsU0FBUSxzQkFBUztJQUN6RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFDO1FBQzdFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBRXpGLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLDRCQUE0QixFQUFFO1lBQ2hFLFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxZQUFZO1lBQ2pELFNBQVMsRUFBRSxDQUFDO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsNENBQTRDO1FBQzVDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ2xELFlBQVksRUFBRTtnQkFDWixNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0JBQ25CLFVBQVUsRUFBRSxDQUFDLHVCQUF1QixFQUFFLHFDQUFxQyxFQUFFLG9CQUFvQixDQUFDO2dCQUNsRyxNQUFNLEVBQUU7b0JBQ04sYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDO29CQUMxQixVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQ3ZCLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7aUJBQzVEO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQ2pGLENBQUMsQ0FBQztRQUVILE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQ3ZFLElBQUksRUFDSixrQ0FBa0MsRUFDbEM7WUFDRSxXQUFXLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsbURBQW1ELENBQUM7WUFDcEYsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO1FBRUYsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSx5QkFBeUIsRUFBRTtZQUNuRSxXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUM7WUFDaEYsYUFBYSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FDL0MseUJBQXlCLEVBQ3pCLHFDQUFxQyxDQUN0QztZQUNELFFBQVEsRUFBRSxzQkFBc0I7U0FDakMsQ0FBQyxDQUFDO1FBRUgsNEZBQTRGO1FBQzVGLElBQUksMEJBQWMsQ0FBQyxJQUFJLEVBQUUsK0JBQStCLEVBQUU7WUFDeEQsSUFBSSxFQUFFLCtCQUErQjtZQUNyQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsV0FBVyxFQUFFLHdDQUE0QixDQUFDLFNBQVM7WUFDbkQsS0FBSyxFQUFFLG9CQUFvQixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLDRCQUNuRCxzQkFBc0IsQ0FBQyxZQUN6QixpREFBaUQ7WUFDakQsT0FBTyxFQUFFLHNFQUFzRTtnQkFDckUsdUVBQXVFO1lBQ2pGLFFBQVEsRUFBRSxDQUFDO1lBQ1gsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXpERCxvRUF5REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBEYXRhZG9nTW9uaXRvciwgRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZSwgSU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RhdGFkb2d2Mic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWNzQWJydXB0bHlTdG9wcGVkTW9uaXRvclByb3BzIHtcbiAgc2VydmljZU5hbWU6IHN0cmluZztcbiAgbm90aWZpY2F0aW9uOiBJTm90aWZpY2F0aW9uO1xuICAvKipcbiAgICAgKiBBUk4gb2YgdGhlIGNsdXN0ZXIgdGhhdCBzaG91bGQgYmUgbW9uaXRvcmVkLlxuICAgICAqIElmIG5vIGNsdXN0ZXIgaXMgcHJvdmlkZWQsIGFsbCBFQ1Mgd2lsbCBiZSBwYXJ0IG9mIHRoZSBtb25pdG9yLlxuICAgICAqL1xuICBjbHVzdGVyQXJuPzogc3RyaW5nO1xufVxuXG4vKipcbiAqICMgV0FSTklORzogVGhpcyBjb25zdHJ1Y3QgaXMgc3RpbGwgb24gYmV0YSBwaGFzZS5cbiAqXG4gKiBUaGUgY29uc3RydWN0IGNyZWF0ZXMgbW9uaXRvcmluZyBmb3IgZGV0ZWN0aW5nIEVDUyBjb250YWluZXJzIHRoYXQgd2VyZSBzdG9wcGVkIGFicnVwdGx5IGZvciByZWFzb25zIHN1Y2ggYXMsXG4gKiBvdXQgb2YgbWVtb3J5LCBmYWlsZWQgaGVhbHRoIGNoZWNrcy5cbiAqXG4gKiBUaGUgbW9uaXRvciB3aWxsIGNvbnN1bWUgdGhlIEVDUyBldmVudHMgYW5kIHNlbmQgdGhlbSB0byBhIENsb3VkV2F0Y2ggbG9nIGdyb3VwLCB3aGljaCBhcmUgZm9yd2FyZGVkIHRvIERhdGFkb2cgZm9yXG4gKiBiZXR0ZXIgYW5hbHlzZXMgYW5kIHRyaWdnZXIgYW4gYWxlcnQuXG4gKlxuICogTW9yZSBkZXRhaWxzIG9uIHRoZSBBV1MgRUNTIGV2ZW50cyBjYW4gYmUgZm91bmQgaGVyZTpcbiAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNTL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9lY3NfY3dlX2V2ZW50cy5odG1sfVxuICpcbiAqIFRoaXMgbW9uaXRvciBhZGRzIHRyYW5zcGFyZW5jeSB0byBzdWNoIGNhc2VzLCB3aGljaCBvdGhlcndpc2Ugd291bGQgaGFwcGVuIHdpdGhvdXQgYmVpbmcgbm90aWNlZCBhbmQgY291bGQgZXNjYWxhdGVcbiAqIHRvIGJpZ2dlciBpc3N1ZXMsIGxpa2UgYSBzZXJ2aWNlIGJlaW5nIHRoYXQgcmVxdWlyZXMgbW9yZSByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBd3NFY3NBYnJ1cHRseVN0b3BwZWRNb25pdG9yIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEVjc0FicnVwdGx5U3RvcHBlZE1vbml0b3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBlY3NTdGF0ZUNoYW5nZUxvZ0dyb3VwID0gbmV3IGNkay5hd3NfbG9ncy5Mb2dHcm91cCh0aGlzLCAnRWNzU3RhdGVDaGFuZ2VMb2dHcm91cCcpO1xuXG4gICAgbmV3IGNkay5hd3NfbG9ncy5Mb2dSZXRlbnRpb24odGhpcywgJ0Vjc1N0YXRlQ2hhbmdlTG9nUmV0ZW50aW9uJywge1xuICAgICAgbG9nR3JvdXBOYW1lOiBlY3NTdGF0ZUNoYW5nZUxvZ0dyb3VwLmxvZ0dyb3VwTmFtZSxcbiAgICAgIHJldGVudGlvbjogMyxcbiAgICB9KTtcblxuICAgIC8vIFJ1bGUgdG8gY292ZXIgYWxsIGNsdXN0ZXJzIHN0YXR1cyBjaGFuZ2VzXG4gICAgbmV3IGNkay5hd3NfZXZlbnRzLlJ1bGUodGhpcywgJ0Vjc1N0YXRlQ2hhbmdlUnVsZScsIHtcbiAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICBzb3VyY2U6IFsnYXdzLmVjcyddLFxuICAgICAgICBkZXRhaWxUeXBlOiBbJ0VDUyBUYXNrIFN0YXRlIENoYW5nZScsICdFQ1MgQ29udGFpbmVyIEluc3RhbmNlIFN0YXRlIENoYW5nZScsICdFQ1MgU2VydmljZSBBY3Rpb24nXSxcbiAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgZGVzaXJlZFN0YXR1czogWydTVE9QUEVEJ10sXG4gICAgICAgICAgbGFzdFN0YXR1czogWydTVE9QUEVEJ10sXG4gICAgICAgICAgLi4uKHByb3BzLmNsdXN0ZXJBcm4gJiYgeyBjbHVzdGVyQXJuOiBbcHJvcHMuY2x1c3RlckFybl0gfSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdGFyZ2V0czogW25ldyBjZGsuYXdzX2V2ZW50c190YXJnZXRzLkNsb3VkV2F0Y2hMb2dHcm91cChlY3NTdGF0ZUNoYW5nZUxvZ0dyb3VwKV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBsb2dGb3J3YXJkZXJMYW1iZGEgPSBjZGsuYXdzX2xhbWJkYS5GdW5jdGlvbi5mcm9tRnVuY3Rpb25BdHRyaWJ1dGVzKFxuICAgICAgdGhpcyxcbiAgICAgICdFY3NTdGF0ZUNoYW5nZUxvZ0ZvcndhcmRlckxhbWJkYScsXG4gICAgICB7XG4gICAgICAgIGZ1bmN0aW9uQXJuOiBjZGsuRm4uaW1wb3J0VmFsdWUoJ2N1c3RvbS1yZXNvdXJjZS1kYXRhZG9nLWxvZ2ZvcndhcmRlci1mdW5jdGlvbi1hcm4nKSxcbiAgICAgICAgc2FtZUVudmlyb25tZW50OiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgbmV3IGNkay5hd3NfbG9ncy5TdWJzY3JpcHRpb25GaWx0ZXIodGhpcywgJ0Vjc1N0YXRlQ2hhbmdlTG9nRmlsdGVyJywge1xuICAgICAgZGVzdGluYXRpb246IG5ldyBjZGsuYXdzX2xvZ3NfZGVzdGluYXRpb25zLkxhbWJkYURlc3RpbmF0aW9uKGxvZ0ZvcndhcmRlckxhbWJkYSksXG4gICAgICBmaWx0ZXJQYXR0ZXJuOiBjZGsuYXdzX2xvZ3MuRmlsdGVyUGF0dGVybi5hbnlUZXJtKFxuICAgICAgICAnQ29udGFpbmVyIGtpbGxlZCBkdWUgdG8nLFxuICAgICAgICAnVGFzayBmYWlsZWQgY29udGFpbmVyIGhlYWx0aCBjaGVja3MnLFxuICAgICAgKSxcbiAgICAgIGxvZ0dyb3VwOiBlY3NTdGF0ZUNoYW5nZUxvZ0dyb3VwLFxuICAgIH0pO1xuXG4gICAgLy8gQWZ0ZXIgYmVpbmcgbWlncmF0ZWQgdG8gdGhlIG5ldyB2ZXJzaW9uIGl0IGNhbiBiZSBhZGRlZCB0byB0aGUgQ0xBSUQgY29uc3RydWN0IHJlcG9zaXRvcnlcbiAgICBuZXcgRGF0YWRvZ01vbml0b3IodGhpcywgJ0Vjc1N0YXRlQ2hhbmdlTG9nR3JvdXBNb25pdG9yJywge1xuICAgICAgbmFtZTogJ1VuZXhwZWN0ZWQgRUNTIHN0YXR1cyBjaGFuZ2VzJyxcbiAgICAgIHNlcnZpY2VOYW1lOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICAgIG1vbml0b3JUeXBlOiBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlLkxPR19BTEVSVCxcbiAgICAgIHF1ZXJ5OiBgbG9ncyhcImFjY291bnRfaWQ6JHtjZGsuU3RhY2sub2YodGhpcykuYWNjb3VudH0gQGF3cy5hd3Nsb2dzLmxvZ0dyb3VwOlxcXCIke1xuICAgICAgICBlY3NTdGF0ZUNoYW5nZUxvZ0dyb3VwLmxvZ0dyb3VwTmFtZVxuICAgICAgfVxcXCJcIikuaW5kZXgoXCIqXCIpLnJvbGx1cChcImNvdW50XCIpLmxhc3QoXCI1bVwiKSA+PSAxYCxcbiAgICAgIG1lc3NhZ2U6ICd7eyNpc19hbGVydH19VGhlcmUgYXJlIHVuZXhwZWN0ZWQgRUNTIHN0YXR1cyBjaGFuZ2VzIGluIHRoZSBhY2NvdW50ICcgK1xuICAgICAgICAgICAgICAgICd7e2xvZy50YWdzLmFjY291bnRfaWR9fSwgbW9yZSBkZXRhaWxzIGhlcmUge3tsb2cubGlua319IHt7L2lzX2FsZXJ0fX0nLFxuICAgICAgcHJpb3JpdHk6IDMsXG4gICAgICBub3RpZmljYXRpb246IHByb3BzLm5vdGlmaWNhdGlvbixcbiAgICB9KTtcbiAgfVxufVxuXG4iXX0=
@@ -0,0 +1 @@
1
+ export * from './aws-ecs-abruptly-stopped-monitor';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./aws-ecs-abruptly-stopped-monitor"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJpYnV0aW9ucy90ZWFtLW91Ym91dC1vcmRlci1ib29rL2F3cy1lY3MtYWJydXB0bHktc3RvcHBlZC1tb25pdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxRUFBbUQiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F3cy1lY3MtYWJydXB0bHktc3RvcHBlZC1tb25pdG9yJztcbiJdfQ==
@@ -1,11 +1,11 @@
1
1
  import { Reference } from 'aws-cdk-lib';
2
2
  import { Construct } from 'constructs';
3
- import { DatadogAlertType, DatadogMonitor } from '../../../datadog/datadog-monitor';
3
+ import { DatadogMonitor, INotification } from '../../../datadogv2';
4
4
  interface DatadogPipelineMonitorProps {
5
5
  pipelineName: string | Reference;
6
6
  serviceName: string;
7
7
  accountId: string;
8
- alertType?: DatadogAlertType;
8
+ notification?: INotification;
9
9
  }
10
10
  export declare class DatadogPipelineErrorAlert extends DatadogMonitor {
11
11
  constructor(scope: Construct, id: string, props: DatadogPipelineMonitorProps);
@@ -1,44 +1,43 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DataDogPipelineErrorAlertForVulnerabilityChecks = exports.DatadogPipelineErrorAlert = void 0;
4
- const datadog_monitor_1 = require("../../../datadog/datadog-monitor");
5
- class DatadogPipelineErrorAlert extends datadog_monitor_1.DatadogMonitor {
4
+ const datadogv2_1 = require("../../../datadogv2");
5
+ class DatadogPipelineErrorAlert extends datadogv2_1.DatadogMonitor {
6
6
  constructor(scope, id, props) {
7
7
  super(scope, id, {
8
8
  serviceName: props.serviceName,
9
- monitor: {
10
- type: 'query alert',
11
- tags: ['cicd'],
12
- query: `min(last_5m):min:deployment.codepipeline.executions{pipeline_name:${props.pipelineName},account_id:${props.accountId}} < 1`,
13
- name: 'CI pipeline status',
14
- message: '[P5] {{#is_alert}}\\nThe CI build is broken\\n{{/is_alert}} \\n\\n{{#is_alert_recovery}}\\nThe CI build works again.\\n{{/is_alert_recovery}}',
15
- priority: 5,
16
- options: {
17
- require_full_window: false,
18
- },
9
+ notification: props.notification,
10
+ monitorType: datadogv2_1.DatadogMonitorQueryAlertType.QUERY_ALERT,
11
+ extraTags: ['cicd'],
12
+ query: `min(last_5m):min:deployment.codepipeline.executions{pipeline_name:${props.pipelineName},account_id:${props.accountId}} < 1`,
13
+ name: 'CI pipeline status',
14
+ message: '{{#is_alert}}\\nThe CI build is broken\\n{{/is_alert}} \\n\\n{{#is_alert_recovery}}\\nThe CI build works again.\\n{{/is_alert_recovery}}',
15
+ priority: 5,
16
+ optionOverrides: {
17
+ requireFullWindow: false,
18
+ evaluationDelay: 0,
19
19
  },
20
20
  });
21
21
  }
22
22
  }
23
23
  exports.DatadogPipelineErrorAlert = DatadogPipelineErrorAlert;
24
- class DataDogPipelineErrorAlertForVulnerabilityChecks extends datadog_monitor_1.DatadogMonitor {
24
+ class DataDogPipelineErrorAlertForVulnerabilityChecks extends datadogv2_1.DatadogMonitor {
25
25
  constructor(scope, id, props) {
26
26
  super(scope, id, {
27
27
  serviceName: props.serviceName,
28
- alertTypes: [props.alertType || 'opsgenie'],
29
- monitor: {
30
- type: 'query alert',
31
- tags: ['cicd'],
32
- query: `min(last_5m):min:deployment.codepipeline.executions{pipeline_name:${props.pipelineName},account_id:${props.accountId}} < 1`,
33
- name: 'Vulnerability checks',
34
- message: '[P3] Vulnerabilities detected',
35
- priority: 3,
36
- options: {
37
- require_full_window: false,
38
- },
28
+ notification: props.notification,
29
+ monitorType: datadogv2_1.DatadogMonitorQueryAlertType.QUERY_ALERT,
30
+ extraTags: ['cicd'],
31
+ query: `min(last_5m):min:deployment.codepipeline.executions{pipeline_name:${props.pipelineName},account_id:${props.accountId}} < 1`,
32
+ name: 'Vulnerability checks',
33
+ message: 'Vulnerabilities detected',
34
+ priority: 3,
35
+ optionOverrides: {
36
+ requireFullWindow: false,
37
+ evaluationDelay: 0,
39
38
  },
40
39
  });
41
40
  }
42
41
  }
43
42
  exports.DataDogPipelineErrorAlertForVulnerabilityChecks = DataDogPipelineErrorAlertForVulnerabilityChecks;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1tb25pdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9waXBlbGluZS9kYXRhZG9nLW1vbml0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHNFQUFvRjtBQVNwRixNQUFhLHlCQUEwQixTQUFRLGdDQUFjO0lBQzNELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBa0M7UUFDMUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxhQUFhO2dCQUNuQixJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7Z0JBQ2QsS0FBSyxFQUFFLHFFQUFxRSxLQUFLLENBQUMsWUFBWSxlQUFlLEtBQUssQ0FBQyxTQUFTLE9BQU87Z0JBQ25JLElBQUksRUFBRSxvQkFBb0I7Z0JBQzFCLE9BQU8sRUFBRSwrSUFBK0k7Z0JBQ3hKLFFBQVEsRUFBRSxDQUFDO2dCQUNYLE9BQU8sRUFBRTtvQkFDUCxtQkFBbUIsRUFBRSxLQUFLO2lCQUMzQjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBakJELDhEQWlCQztBQUVELE1BQWEsK0NBQWdELFNBQVEsZ0NBQWM7SUFDakYsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFrQztRQUMxRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQztZQUMzQyxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQztnQkFDZCxLQUFLLEVBQUUscUVBQXFFLEtBQUssQ0FBQyxZQUFZLGVBQWUsS0FBSyxDQUFDLFNBQVMsT0FBTztnQkFDbkksSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsT0FBTyxFQUFFLCtCQUErQjtnQkFDeEMsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxFQUFFO29CQUNQLG1CQUFtQixFQUFFLEtBQUs7aUJBQzNCO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFsQkQsMEdBa0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVmZXJlbmNlIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBEYXRhZG9nQWxlcnRUeXBlLCBEYXRhZG9nTW9uaXRvciB9IGZyb20gJy4uLy4uLy4uL2RhdGFkb2cvZGF0YWRvZy1tb25pdG9yJztcblxuaW50ZXJmYWNlIERhdGFkb2dQaXBlbGluZU1vbml0b3JQcm9wcyB7XG4gIHBpcGVsaW5lTmFtZTogc3RyaW5nIHwgUmVmZXJlbmNlO1xuICBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICBhY2NvdW50SWQ6IHN0cmluZztcbiAgYWxlcnRUeXBlPzogRGF0YWRvZ0FsZXJ0VHlwZTtcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFkb2dQaXBlbGluZUVycm9yQWxlcnQgZXh0ZW5kcyBEYXRhZG9nTW9uaXRvciB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhZG9nUGlwZWxpbmVNb25pdG9yUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHNlcnZpY2VOYW1lOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICAgIG1vbml0b3I6IHtcbiAgICAgICAgdHlwZTogJ3F1ZXJ5IGFsZXJ0JyxcbiAgICAgICAgdGFnczogWydjaWNkJ10sXG4gICAgICAgIHF1ZXJ5OiBgbWluKGxhc3RfNW0pOm1pbjpkZXBsb3ltZW50LmNvZGVwaXBlbGluZS5leGVjdXRpb25ze3BpcGVsaW5lX25hbWU6JHtwcm9wcy5waXBlbGluZU5hbWV9LGFjY291bnRfaWQ6JHtwcm9wcy5hY2NvdW50SWR9fSA8IDFgLFxuICAgICAgICBuYW1lOiAnQ0kgcGlwZWxpbmUgc3RhdHVzJyxcbiAgICAgICAgbWVzc2FnZTogJ1tQNV0ge3sjaXNfYWxlcnR9fVxcXFxuVGhlIENJIGJ1aWxkIGlzIGJyb2tlblxcXFxue3svaXNfYWxlcnR9fSBcXFxcblxcXFxue3sjaXNfYWxlcnRfcmVjb3Zlcnl9fVxcXFxuVGhlIENJIGJ1aWxkIHdvcmtzIGFnYWluLlxcXFxue3svaXNfYWxlcnRfcmVjb3Zlcnl9fScsXG4gICAgICAgIHByaW9yaXR5OiA1LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgcmVxdWlyZV9mdWxsX3dpbmRvdzogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhRG9nUGlwZWxpbmVFcnJvckFsZXJ0Rm9yVnVsbmVyYWJpbGl0eUNoZWNrcyBleHRlbmRzIERhdGFkb2dNb25pdG9yIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFkb2dQaXBlbGluZU1vbml0b3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgICAgYWxlcnRUeXBlczogW3Byb3BzLmFsZXJ0VHlwZSB8fCAnb3BzZ2VuaWUnXSxcbiAgICAgIG1vbml0b3I6IHtcbiAgICAgICAgdHlwZTogJ3F1ZXJ5IGFsZXJ0JyxcbiAgICAgICAgdGFnczogWydjaWNkJ10sXG4gICAgICAgIHF1ZXJ5OiBgbWluKGxhc3RfNW0pOm1pbjpkZXBsb3ltZW50LmNvZGVwaXBlbGluZS5leGVjdXRpb25ze3BpcGVsaW5lX25hbWU6JHtwcm9wcy5waXBlbGluZU5hbWV9LGFjY291bnRfaWQ6JHtwcm9wcy5hY2NvdW50SWR9fSA8IDFgLFxuICAgICAgICBuYW1lOiAnVnVsbmVyYWJpbGl0eSBjaGVja3MnLFxuICAgICAgICBtZXNzYWdlOiAnW1AzXSBWdWxuZXJhYmlsaXRpZXMgZGV0ZWN0ZWQnLFxuICAgICAgICBwcmlvcml0eTogMyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHJlcXVpcmVfZnVsbF93aW5kb3c6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1tb25pdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9waXBlbGluZS9kYXRhZG9nLW1vbml0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLGtEQUFpRztBQVNqRyxNQUFhLHlCQUEwQixTQUFRLDBCQUFjO0lBQzNELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBa0M7UUFDMUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLFdBQVcsRUFBRSx3Q0FBNEIsQ0FBQyxXQUFXO1lBQ3JELFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNuQixLQUFLLEVBQUUscUVBQXFFLEtBQUssQ0FBQyxZQUFZLGVBQWUsS0FBSyxDQUFDLFNBQVMsT0FBTztZQUNuSSxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLE9BQU8sRUFBRSwwSUFBMEk7WUFDbkosUUFBUSxFQUFFLENBQUM7WUFDWCxlQUFlLEVBQUU7Z0JBQ2YsaUJBQWlCLEVBQUUsS0FBSztnQkFDeEIsZUFBZSxFQUFFLENBQUM7YUFDbkI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFqQkQsOERBaUJDO0FBRUQsTUFBYSwrQ0FBZ0QsU0FBUSwwQkFBYztJQUNqRixZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWtDO1FBQzFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxXQUFXLEVBQUUsd0NBQTRCLENBQUMsV0FBVztZQUNyRCxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDbkIsS0FBSyxFQUFFLHFFQUFxRSxLQUFLLENBQUMsWUFBWSxlQUFlLEtBQUssQ0FBQyxTQUFTLE9BQU87WUFDbkksSUFBSSxFQUFFLHNCQUFzQjtZQUM1QixPQUFPLEVBQUUsMEJBQTBCO1lBQ25DLFFBQVEsRUFBRSxDQUFDO1lBQ1gsZUFBZSxFQUFFO2dCQUNmLGlCQUFpQixFQUFFLEtBQUs7Z0JBQ3hCLGVBQWUsRUFBRSxDQUFDO2FBQ25CO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBakJELDBHQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZmVyZW5jZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRGF0YWRvZ01vbml0b3IsIERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUsIElOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi8uLi9kYXRhZG9ndjInO1xuXG5pbnRlcmZhY2UgRGF0YWRvZ1BpcGVsaW5lTW9uaXRvclByb3BzIHtcbiAgcGlwZWxpbmVOYW1lOiBzdHJpbmcgfCBSZWZlcmVuY2U7XG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIGFjY291bnRJZDogc3RyaW5nO1xuICBub3RpZmljYXRpb24/OiBJTm90aWZpY2F0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgRGF0YWRvZ1BpcGVsaW5lRXJyb3JBbGVydCBleHRlbmRzIERhdGFkb2dNb25pdG9yIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFkb2dQaXBlbGluZU1vbml0b3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgICAgbm90aWZpY2F0aW9uOiBwcm9wcy5ub3RpZmljYXRpb24sXG4gICAgICBtb25pdG9yVHlwZTogRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZS5RVUVSWV9BTEVSVCxcbiAgICAgIGV4dHJhVGFnczogWydjaWNkJ10sXG4gICAgICBxdWVyeTogYG1pbihsYXN0XzVtKTptaW46ZGVwbG95bWVudC5jb2RlcGlwZWxpbmUuZXhlY3V0aW9uc3twaXBlbGluZV9uYW1lOiR7cHJvcHMucGlwZWxpbmVOYW1lfSxhY2NvdW50X2lkOiR7cHJvcHMuYWNjb3VudElkfX0gPCAxYCxcbiAgICAgIG5hbWU6ICdDSSBwaXBlbGluZSBzdGF0dXMnLFxuICAgICAgbWVzc2FnZTogJ3t7I2lzX2FsZXJ0fX1cXFxcblRoZSBDSSBidWlsZCBpcyBicm9rZW5cXFxcbnt7L2lzX2FsZXJ0fX0gXFxcXG5cXFxcbnt7I2lzX2FsZXJ0X3JlY292ZXJ5fX1cXFxcblRoZSBDSSBidWlsZCB3b3JrcyBhZ2Fpbi5cXFxcbnt7L2lzX2FsZXJ0X3JlY292ZXJ5fX0nLFxuICAgICAgcHJpb3JpdHk6IDUsXG4gICAgICBvcHRpb25PdmVycmlkZXM6IHtcbiAgICAgICAgcmVxdWlyZUZ1bGxXaW5kb3c6IGZhbHNlLFxuICAgICAgICBldmFsdWF0aW9uRGVsYXk6IDAsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhRG9nUGlwZWxpbmVFcnJvckFsZXJ0Rm9yVnVsbmVyYWJpbGl0eUNoZWNrcyBleHRlbmRzIERhdGFkb2dNb25pdG9yIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFkb2dQaXBlbGluZU1vbml0b3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgICAgbm90aWZpY2F0aW9uOiBwcm9wcy5ub3RpZmljYXRpb24sXG4gICAgICBtb25pdG9yVHlwZTogRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZS5RVUVSWV9BTEVSVCxcbiAgICAgIGV4dHJhVGFnczogWydjaWNkJ10sXG4gICAgICBxdWVyeTogYG1pbihsYXN0XzVtKTptaW46ZGVwbG95bWVudC5jb2RlcGlwZWxpbmUuZXhlY3V0aW9uc3twaXBlbGluZV9uYW1lOiR7cHJvcHMucGlwZWxpbmVOYW1lfSxhY2NvdW50X2lkOiR7cHJvcHMuYWNjb3VudElkfX0gPCAxYCxcbiAgICAgIG5hbWU6ICdWdWxuZXJhYmlsaXR5IGNoZWNrcycsXG4gICAgICBtZXNzYWdlOiAnVnVsbmVyYWJpbGl0aWVzIGRldGVjdGVkJyxcbiAgICAgIHByaW9yaXR5OiAzLFxuICAgICAgb3B0aW9uT3ZlcnJpZGVzOiB7XG4gICAgICAgIHJlcXVpcmVGdWxsV2luZG93OiBmYWxzZSxcbiAgICAgICAgZXZhbHVhdGlvbkRlbGF5OiAwLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -3,7 +3,8 @@ import { Stack, StackProps } from 'aws-cdk-lib';
3
3
  import { BuildEnvironment } from 'aws-cdk-lib/aws-codebuild';
4
4
  import { CodeBuildStep } from 'aws-cdk-lib/pipelines';
5
5
  import { Construct } from 'constructs';
6
- import { DatadogAlertType } from '../../../datadog/datadog-monitor';
6
+ import { DatadogAlertType } from '../../../datadog';
7
+ import { INotification } from '../../../datadogv2';
7
8
  export interface PipelineSchedulesProps {
8
9
  readonly mainPipeline?: string;
9
10
  readonly vulnerabilityPipeline?: string;
@@ -59,9 +60,14 @@ export interface PipelineStackProps extends StackProps {
59
60
  */
60
61
  readonly monitoringDeployStepProps?: PipelineStackRioMonitoringDeployStepProps;
61
62
  /**
62
- * Determines the alert type of the pipeline monitors that trigger an alert. Default is opsgenie.
63
+ * @deprecated Please use the `vulnerabilityNotification` property instead.
64
+ * If `opsgenie` is specified, an Exception is thrown, as this is not supported anymore.
63
65
  */
64
66
  readonly datadogAlertType?: DatadogAlertType;
67
+ /**
68
+ * Notification type for the auto-generated vulnerability pipeline monitor. Defaults to slack.
69
+ */
70
+ readonly vulnerabilityNotification?: INotification;
65
71
  }
66
72
  /**
67
73
  * Provider interface to create the AppStack within the specific scope