-
Notifications
You must be signed in to change notification settings - Fork 17
/
NotificationRuleProps.go
64 lines (61 loc) · 3 KB
/
NotificationRuleProps.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package awscodestarnotifications
// Properties for a new notification rule.
//
// Example:
// import notifications "github.com/aws/aws-cdk-go/awscdk"
// import codebuild "github.com/aws/aws-cdk-go/awscdk"
// import sns "github.com/aws/aws-cdk-go/awscdk"
// import chatbot "github.com/aws/aws-cdk-go/awscdk"
//
//
// project := codebuild.NewPipelineProject(this, jsii.String("MyProject"))
//
// topic := sns.NewTopic(this, jsii.String("MyTopic1"))
//
// slack := chatbot.NewSlackChannelConfiguration(this, jsii.String("MySlackChannel"), &SlackChannelConfigurationProps{
// SlackChannelConfigurationName: jsii.String("YOUR_CHANNEL_NAME"),
// SlackWorkspaceId: jsii.String("YOUR_SLACK_WORKSPACE_ID"),
// SlackChannelId: jsii.String("YOUR_SLACK_CHANNEL_ID"),
// })
//
// rule := notifications.NewNotificationRule(this, jsii.String("NotificationRule"), &NotificationRuleProps{
// Source: project,
// Events: []*string{
// jsii.String("codebuild-project-build-state-succeeded"),
// jsii.String("codebuild-project-build-state-failed"),
// },
// Targets: []iNotificationRuleTarget{
// topic,
// },
// })
// rule.AddTarget(slack)
//
type NotificationRuleProps struct {
// The level of detail to include in the notifications for this resource.
//
// BASIC will include only the contents of the event as it would appear in AWS CloudWatch.
// FULL will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created.
DetailType DetailType `field:"optional" json:"detailType" yaml:"detailType"`
// The status of the notification rule.
//
// If the enabled is set to DISABLED, notifications aren't sent for the notification rule.
Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"`
// The name for the notification rule.
//
// Notification rule names must be unique in your AWS account.
NotificationRuleName *string `field:"optional" json:"notificationRuleName" yaml:"notificationRuleName"`
// A list of event types associated with this notification rule.
//
// For a complete list of event types and IDs, see Notification concepts in the Developer Tools Console User Guide.
// See: https://docs.aws.amazon.com/dtconsole/latest/userguide/concepts.html#concepts-api
//
Events *[]*string `field:"required" json:"events" yaml:"events"`
// The Amazon Resource Name (ARN) of the resource to associate with the notification rule.
//
// Currently, Supported sources include pipelines in AWS CodePipeline, build projects in AWS CodeBuild, and repositories in AWS CodeCommit in this L2 constructor.
// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-resource
//
Source INotificationRuleSource `field:"required" json:"source" yaml:"source"`
// The targets to register for the notification destination.
Targets *[]INotificationRuleTarget `field:"optional" json:"targets" yaml:"targets"`
}