-
Notifications
You must be signed in to change notification settings - Fork 17
/
StringConditions.go
54 lines (51 loc) · 1.82 KB
/
StringConditions.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
package awssns
// Conditions that can be applied to string attributes.
//
// Example:
// import lambda "github.com/aws/aws-cdk-go/awscdk"
// var fn function
//
//
// myTopic := sns.NewTopic(this, jsii.String("MyTopic"))
//
// // Lambda should receive only message matching the following conditions on attributes:
// // color: 'red' or 'orange' or begins with 'bl'
// // size: anything but 'small' or 'medium'
// // price: between 100 and 200 or greater than 300
// // store: attribute must be present
// myTopic.AddSubscription(subscriptions.NewLambdaSubscription(fn, &LambdaSubscriptionProps{
// FilterPolicy: map[string]subscriptionFilter{
// "color": sns.*subscriptionFilter_stringFilter(&StringConditions{
// "allowlist": []*string{
// jsii.String("red"),
// jsii.String("orange"),
// },
// "matchPrefixes": []*string{
// jsii.String("bl"),
// },
// }),
// "size": sns.*subscriptionFilter_stringFilter(&StringConditions{
// "denylist": []*string{
// jsii.String("small"),
// jsii.String("medium"),
// },
// }),
// "price": sns.*subscriptionFilter_numericFilter(&NumericConditions{
// "between": &BetweenCondition{
// "start": jsii.Number(100),
// "stop": jsii.Number(200),
// },
// "greaterThan": jsii.Number(300),
// }),
// "store": sns.*subscriptionFilter_existsFilter(),
// },
// }))
//
type StringConditions struct {
// Match one or more values.
Allowlist *[]*string `field:"optional" json:"allowlist" yaml:"allowlist"`
// Match any value that doesn't include any of the specified values.
Denylist *[]*string `field:"optional" json:"denylist" yaml:"denylist"`
// Matches values that begins with the specified prefixes.
MatchPrefixes *[]*string `field:"optional" json:"matchPrefixes" yaml:"matchPrefixes"`
}