package awswafv2 // A logical rule statement used to combine other rule statements with AND logic. // // You provide more than one `Statement` within the `AndStatement` . // // Example: // // The code below shows an example of how to instantiate this type. // // The values are placeholders you should change. // import "github.com/aws/aws-cdk-go/awscdk" // // var all interface{} // var allQueryArguments interface{} // var andStatementProperty_ andStatementProperty // var method interface{} // var queryString interface{} // var singleHeader interface{} // var singleQueryArgument interface{} // var statementProperty_ statementProperty // var uriPath interface{} // // andStatementProperty := &andStatementProperty{ // Statements: []interface{}{ // &statementProperty{ // AndStatement: andStatementProperty_, // ByteMatchStatement: &ByteMatchStatementProperty{ // FieldToMatch: &FieldToMatchProperty{ // AllQueryArguments: allQueryArguments, // Body: &BodyProperty{ // OversizeHandling: jsii.String("oversizeHandling"), // }, // Cookies: &CookiesProperty{ // MatchPattern: &CookieMatchPatternProperty{ // All: all, // ExcludedCookies: []*string{ // jsii.String("excludedCookies"), // }, // IncludedCookies: []*string{ // jsii.String("includedCookies"), // }, // }, // MatchScope: jsii.String("matchScope"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // Headers: &HeadersProperty{ // MatchPattern: &HeaderMatchPatternProperty{ // All: all, // ExcludedHeaders: []*string{ // jsii.String("excludedHeaders"), // }, // IncludedHeaders: []*string{ // jsii.String("includedHeaders"), // }, // }, // MatchScope: jsii.String("matchScope"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // JsonBody: &JsonBodyProperty{ // MatchPattern: &JsonMatchPatternProperty{ // All: all, // IncludedPaths: []*string{ // jsii.String("includedPaths"), // }, // }, // MatchScope: jsii.String("matchScope"), // // // the properties below are optional // InvalidFallbackBehavior: jsii.String("invalidFallbackBehavior"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // Method: method, // QueryString: queryString, // SingleHeader: singleHeader, // SingleQueryArgument: singleQueryArgument, // UriPath: uriPath, // }, // PositionalConstraint: jsii.String("positionalConstraint"), // TextTransformations: []interface{}{ // &TextTransformationProperty{ // Priority: jsii.Number(123), // Type: jsii.String("type"), // }, // }, // // // the properties below are optional // SearchString: jsii.String("searchString"), // SearchStringBase64: jsii.String("searchStringBase64"), // }, // GeoMatchStatement: &GeoMatchStatementProperty{ // CountryCodes: []*string{ // jsii.String("countryCodes"), // }, // ForwardedIpConfig: &ForwardedIPConfigurationProperty{ // FallbackBehavior: jsii.String("fallbackBehavior"), // HeaderName: jsii.String("headerName"), // }, // }, // IpSetReferenceStatement: map[string]interface{}{ // "arn": jsii.String("arn"), // // // the properties below are optional // "ipSetForwardedIpConfig": map[string]*string{ // "fallbackBehavior": jsii.String("fallbackBehavior"), // "headerName": jsii.String("headerName"), // "position": jsii.String("position"), // }, // }, // LabelMatchStatement: &LabelMatchStatementProperty{ // Key: jsii.String("key"), // Scope: jsii.String("scope"), // }, // NotStatement: &NotStatementProperty{ // Statement: statementProperty_, // }, // OrStatement: &OrStatementProperty{ // Statements: []interface{}{ // statementProperty_, // }, // }, // RateBasedStatement: &RateBasedStatementProperty{ // AggregateKeyType: jsii.String("aggregateKeyType"), // Limit: jsii.Number(123), // // // the properties below are optional // ForwardedIpConfig: &ForwardedIPConfigurationProperty{ // FallbackBehavior: jsii.String("fallbackBehavior"), // HeaderName: jsii.String("headerName"), // }, // ScopeDownStatement: statementProperty_, // }, // RegexMatchStatement: &RegexMatchStatementProperty{ // FieldToMatch: &FieldToMatchProperty{ // AllQueryArguments: allQueryArguments, // Body: &BodyProperty{ // OversizeHandling: jsii.String("oversizeHandling"), // }, // Cookies: &CookiesProperty{ // MatchPattern: &CookieMatchPatternProperty{ // All: all, // ExcludedCookies: []*string{ // jsii.String("excludedCookies"), // }, // IncludedCookies: []*string{ // jsii.String("includedCookies"), // }, // }, // MatchScope: jsii.String("matchScope"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // Headers: &HeadersProperty{ // MatchPattern: &HeaderMatchPatternProperty{ // All: all, // ExcludedHeaders: []*string{ // jsii.String("excludedHeaders"), // }, // IncludedHeaders: []*string{ // jsii.String("includedHeaders"), // }, // }, // MatchScope: jsii.String("matchScope"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // JsonBody: &JsonBodyProperty{ // MatchPattern: &JsonMatchPatternProperty{ // All: all, // IncludedPaths: []*string{ // jsii.String("includedPaths"), // }, // }, // MatchScope: jsii.String("matchScope"), // // // the properties below are optional // InvalidFallbackBehavior: jsii.String("invalidFallbackBehavior"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // Method: method, // QueryString: queryString, // SingleHeader: singleHeader, // SingleQueryArgument: singleQueryArgument, // UriPath: uriPath, // }, // RegexString: jsii.String("regexString"), // TextTransformations: []interface{}{ // &TextTransformationProperty{ // Priority: jsii.Number(123), // Type: jsii.String("type"), // }, // }, // }, // RegexPatternSetReferenceStatement: &RegexPatternSetReferenceStatementProperty{ // Arn: jsii.String("arn"), // FieldToMatch: &FieldToMatchProperty{ // AllQueryArguments: allQueryArguments, // Body: &BodyProperty{ // OversizeHandling: jsii.String("oversizeHandling"), // }, // Cookies: &CookiesProperty{ // MatchPattern: &CookieMatchPatternProperty{ // All: all, // ExcludedCookies: []*string{ // jsii.String("excludedCookies"), // }, // IncludedCookies: []*string{ // jsii.String("includedCookies"), // }, // }, // MatchScope: jsii.String("matchScope"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // Headers: &HeadersProperty{ // MatchPattern: &HeaderMatchPatternProperty{ // All: all, // ExcludedHeaders: []*string{ // jsii.String("excludedHeaders"), // }, // IncludedHeaders: []*string{ // jsii.String("includedHeaders"), // }, // }, // MatchScope: jsii.String("matchScope"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // JsonBody: &JsonBodyProperty{ // MatchPattern: &JsonMatchPatternProperty{ // All: all, // IncludedPaths: []*string{ // jsii.String("includedPaths"), // }, // }, // MatchScope: jsii.String("matchScope"), // // // the properties below are optional // InvalidFallbackBehavior: jsii.String("invalidFallbackBehavior"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // Method: method, // QueryString: queryString, // SingleHeader: singleHeader, // SingleQueryArgument: singleQueryArgument, // UriPath: uriPath, // }, // TextTransformations: []interface{}{ // &TextTransformationProperty{ // Priority: jsii.Number(123), // Type: jsii.String("type"), // }, // }, // }, // SizeConstraintStatement: &SizeConstraintStatementProperty{ // ComparisonOperator: jsii.String("comparisonOperator"), // FieldToMatch: &FieldToMatchProperty{ // AllQueryArguments: allQueryArguments, // Body: &BodyProperty{ // OversizeHandling: jsii.String("oversizeHandling"), // }, // Cookies: &CookiesProperty{ // MatchPattern: &CookieMatchPatternProperty{ // All: all, // ExcludedCookies: []*string{ // jsii.String("excludedCookies"), // }, // IncludedCookies: []*string{ // jsii.String("includedCookies"), // }, // }, // MatchScope: jsii.String("matchScope"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // Headers: &HeadersProperty{ // MatchPattern: &HeaderMatchPatternProperty{ // All: all, // ExcludedHeaders: []*string{ // jsii.String("excludedHeaders"), // }, // IncludedHeaders: []*string{ // jsii.String("includedHeaders"), // }, // }, // MatchScope: jsii.String("matchScope"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // JsonBody: &JsonBodyProperty{ // MatchPattern: &JsonMatchPatternProperty{ // All: all, // IncludedPaths: []*string{ // jsii.String("includedPaths"), // }, // }, // MatchScope: jsii.String("matchScope"), // // // the properties below are optional // InvalidFallbackBehavior: jsii.String("invalidFallbackBehavior"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // Method: method, // QueryString: queryString, // SingleHeader: singleHeader, // SingleQueryArgument: singleQueryArgument, // UriPath: uriPath, // }, // Size: jsii.Number(123), // TextTransformations: []interface{}{ // &TextTransformationProperty{ // Priority: jsii.Number(123), // Type: jsii.String("type"), // }, // }, // }, // SqliMatchStatement: &SqliMatchStatementProperty{ // FieldToMatch: &FieldToMatchProperty{ // AllQueryArguments: allQueryArguments, // Body: &BodyProperty{ // OversizeHandling: jsii.String("oversizeHandling"), // }, // Cookies: &CookiesProperty{ // MatchPattern: &CookieMatchPatternProperty{ // All: all, // ExcludedCookies: []*string{ // jsii.String("excludedCookies"), // }, // IncludedCookies: []*string{ // jsii.String("includedCookies"), // }, // }, // MatchScope: jsii.String("matchScope"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // Headers: &HeadersProperty{ // MatchPattern: &HeaderMatchPatternProperty{ // All: all, // ExcludedHeaders: []*string{ // jsii.String("excludedHeaders"), // }, // IncludedHeaders: []*string{ // jsii.String("includedHeaders"), // }, // }, // MatchScope: jsii.String("matchScope"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // JsonBody: &JsonBodyProperty{ // MatchPattern: &JsonMatchPatternProperty{ // All: all, // IncludedPaths: []*string{ // jsii.String("includedPaths"), // }, // }, // MatchScope: jsii.String("matchScope"), // // // the properties below are optional // InvalidFallbackBehavior: jsii.String("invalidFallbackBehavior"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // Method: method, // QueryString: queryString, // SingleHeader: singleHeader, // SingleQueryArgument: singleQueryArgument, // UriPath: uriPath, // }, // TextTransformations: []interface{}{ // &TextTransformationProperty{ // Priority: jsii.Number(123), // Type: jsii.String("type"), // }, // }, // // // the properties below are optional // SensitivityLevel: jsii.String("sensitivityLevel"), // }, // XssMatchStatement: &XssMatchStatementProperty{ // FieldToMatch: &FieldToMatchProperty{ // AllQueryArguments: allQueryArguments, // Body: &BodyProperty{ // OversizeHandling: jsii.String("oversizeHandling"), // }, // Cookies: &CookiesProperty{ // MatchPattern: &CookieMatchPatternProperty{ // All: all, // ExcludedCookies: []*string{ // jsii.String("excludedCookies"), // }, // IncludedCookies: []*string{ // jsii.String("includedCookies"), // }, // }, // MatchScope: jsii.String("matchScope"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // Headers: &HeadersProperty{ // MatchPattern: &HeaderMatchPatternProperty{ // All: all, // ExcludedHeaders: []*string{ // jsii.String("excludedHeaders"), // }, // IncludedHeaders: []*string{ // jsii.String("includedHeaders"), // }, // }, // MatchScope: jsii.String("matchScope"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // JsonBody: &JsonBodyProperty{ // MatchPattern: &JsonMatchPatternProperty{ // All: all, // IncludedPaths: []*string{ // jsii.String("includedPaths"), // }, // }, // MatchScope: jsii.String("matchScope"), // // // the properties below are optional // InvalidFallbackBehavior: jsii.String("invalidFallbackBehavior"), // OversizeHandling: jsii.String("oversizeHandling"), // }, // Method: method, // QueryString: queryString, // SingleHeader: singleHeader, // SingleQueryArgument: singleQueryArgument, // UriPath: uriPath, // }, // TextTransformations: []interface{}{ // &TextTransformationProperty{ // Priority: jsii.Number(123), // Type: jsii.String("type"), // }, // }, // }, // }, // }, // } // // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-andstatement.html // type CfnRuleGroup_AndStatementProperty struct { // The statements to combine with AND logic. // // You can use any statements that can be nested. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-andstatement.html#cfn-wafv2-rulegroup-andstatement-statements // Statements interface{} `field:"required" json:"statements" yaml:"statements"` }