Skip to content
v2.275.0

FilterOrPolicy Class ​

Class for building the FilterPolicy by avoiding union types.

Example ​

ts
import * as lambda from 'aws-cdk-lib/aws-lambda';

const myTopic = new sns.Topic(this, 'MyTopic');
declare const fn: lambda.Function;

// Lambda should receive only message matching the following conditions on message body:
// color: 'red' or 'orange'
// store: property must not be present
myTopic.addSubscription(new subscriptions.LambdaSubscription(fn, {
  filterPolicyWithMessageBody: {
    background: sns.FilterOrPolicy.policy({
      color: sns.FilterOrPolicy.filter(sns.SubscriptionFilter.stringFilter({
        allowlist: ['red', 'orange'],
      })),
    }),
    store: sns.FilterOrPolicy.filter(sns.SubscriptionFilter.notExistsFilter()),
  },
}));

Initializer ​

ts
new FilterOrPolicy()
python
FilterOrPolicy()
java
new FilterOrPolicy()
csharp
new FilterOrPolicy()
go
NewFilterOrPolicy()

Properties ​

Type switch for disambiguating between subclasses.

Methods ​

filter(filter: SubscriptionFilter): Filter@staticmethod def filter(filter: SubscriptionFilter) -> Filterpublic static Filter filter(SubscriptionFilter filter)public static Filter Filter(SubscriptionFilter filter)func Filter(Filter SubscriptionFilter) Filterstatic#
Filter of MessageBody.
isFilter(): booleandef is_filter(self, ) -> boolpublic Boolean isFilter()public bool IsFilter()func IsFilter() *bool#
Check if instance is `Filter` type.
isPolicy(): booleandef is_policy(self, ) -> boolpublic Boolean isPolicy()public bool IsPolicy()func IsPolicy() *bool#
Check if instance is `Policy` type.
policy(policy: { [key: string]: FilterOrPolicy }): Policy@staticmethod def policy(policy: typing.Mapping[str, FilterOrPolicy]) -> Policypublic static Policy policy(Map<String, FilterOrPolicy> policy)public static Policy Policy(IDictionary<string, FilterOrPolicy> policy)func Policy(Policy *map[string]FilterOrPolicy) Policystatic#
Policy of MessageBody.