@@ -586,6 +586,10 @@ func expandFieldToMatch(l []interface{}) *awstypes.FieldToMatch {
586586 f .JA3Fingerprint = expandJA3Fingerprint (v .([]interface {}))
587587 }
588588
589+ if v , ok := m ["ja4_fingerprint" ]; ok && len (v .([]interface {})) > 0 {
590+ f .JA4Fingerprint = expandJA4Fingerprint (v .([]interface {}))
591+ }
592+
589593 if v , ok := m ["single_query_argument" ]; ok && len (v .([]interface {})) > 0 {
590594 f .SingleQueryArgument = expandSingleQueryArgument (m ["single_query_argument" ].([]interface {}))
591595 }
@@ -716,6 +720,20 @@ func expandJA3Fingerprint(l []interface{}) *awstypes.JA3Fingerprint {
716720 return ja3fingerprint
717721}
718722
723+ func expandJA4Fingerprint (l []interface {}) * awstypes.JA4Fingerprint {
724+ if len (l ) == 0 || l [0 ] == nil {
725+ return nil
726+ }
727+
728+ m := l [0 ].(map [string ]interface {})
729+
730+ ja4fingerprint := & awstypes.JA4Fingerprint {
731+ FallbackBehavior : awstypes .FallbackBehavior (m ["fallback_behavior" ].(string )),
732+ }
733+
734+ return ja4fingerprint
735+ }
736+
719737func expandJSONMatchPattern (l []interface {}) * awstypes.JsonMatchPattern {
720738 if len (l ) == 0 || l [0 ] == nil {
721739 return nil
@@ -1561,6 +1579,26 @@ func expandRateLimitHeader(l []interface{}) *awstypes.RateLimitHeader {
15611579 }
15621580}
15631581
1582+ func expandRateLimitJa3Fingerprint (l []interface {}) * awstypes.RateLimitJA3Fingerprint {
1583+ if len (l ) == 0 || l [0 ] == nil {
1584+ return nil
1585+ }
1586+ m := l [0 ].(map [string ]interface {})
1587+ return & awstypes.RateLimitJA3Fingerprint {
1588+ FallbackBehavior : awstypes .FallbackBehavior (m ["fallback_behavior" ].(string )),
1589+ }
1590+ }
1591+
1592+ func expandRateLimitJa4Fingerprint (l []interface {}) * awstypes.RateLimitJA4Fingerprint {
1593+ if len (l ) == 0 || l [0 ] == nil {
1594+ return nil
1595+ }
1596+ m := l [0 ].(map [string ]interface {})
1597+ return & awstypes.RateLimitJA4Fingerprint {
1598+ FallbackBehavior : awstypes .FallbackBehavior (m ["fallback_behavior" ].(string )),
1599+ }
1600+ }
1601+
15641602func expandRateLimitLabelNamespace (l []interface {}) * awstypes.RateLimitLabelNamespace {
15651603 if len (l ) == 0 || l [0 ] == nil {
15661604 return nil
@@ -1626,6 +1664,12 @@ func expandRateBasedStatementCustomKeys(l []interface{}) []awstypes.RateBasedSta
16261664 if v , ok := m ["ip" ]; ok && len (v .([]interface {})) > 0 {
16271665 r .IP = & awstypes.RateLimitIP {}
16281666 }
1667+ if v , ok := m ["ja3_fingerprint" ]; ok && len (v .([]interface {})) > 0 {
1668+ r .JA3Fingerprint = expandRateLimitJa3Fingerprint (v .([]interface {}))
1669+ }
1670+ if v , ok := m ["ja4_fingerprint" ]; ok && len (v .([]interface {})) > 0 {
1671+ r .JA4Fingerprint = expandRateLimitJa4Fingerprint (v .([]interface {}))
1672+ }
16291673 if v , ok := m ["label_namespace" ]; ok {
16301674 r .LabelNamespace = expandRateLimitLabelNamespace (v .([]interface {}))
16311675 }
@@ -2124,6 +2168,10 @@ func flattenFieldToMatch(f *awstypes.FieldToMatch) interface{} {
21242168 m ["ja3_fingerprint" ] = flattenJA3Fingerprint (f .JA3Fingerprint )
21252169 }
21262170
2171+ if f .JA4Fingerprint != nil {
2172+ m ["ja4_fingerprint" ] = flattenJA4Fingerprint (f .JA4Fingerprint )
2173+ }
2174+
21272175 if f .JsonBody != nil {
21282176 m ["json_body" ] = flattenJSONBody (f .JsonBody )
21292177 }
@@ -2221,6 +2269,18 @@ func flattenJA3Fingerprint(j *awstypes.JA3Fingerprint) interface{} {
22212269 return []interface {}{m }
22222270}
22232271
2272+ func flattenJA4Fingerprint (j * awstypes.JA4Fingerprint ) interface {} {
2273+ if j == nil {
2274+ return []interface {}{}
2275+ }
2276+
2277+ m := map [string ]interface {}{
2278+ "fallback_behavior" : j .FallbackBehavior ,
2279+ }
2280+
2281+ return []interface {}{m }
2282+ }
2283+
22242284func flattenJSONBody (b * awstypes.JsonBody ) interface {} {
22252285 if b == nil {
22262286 return []interface {}{}
@@ -2949,6 +3009,28 @@ func flattenRateLimitHeader(apiObject *awstypes.RateLimitHeader) []interface{} {
29493009 }
29503010}
29513011
3012+ func flattenRateLimitJa3Fingerprint (apiObject * awstypes.RateLimitJA3Fingerprint ) []interface {} {
3013+ if apiObject == nil {
3014+ return nil
3015+ }
3016+ return []interface {}{
3017+ map [string ]interface {}{
3018+ "fallback_behavior" : apiObject .FallbackBehavior ,
3019+ },
3020+ }
3021+ }
3022+
3023+ func flattenRateLimitJa4Fingerprint (apiObject * awstypes.RateLimitJA4Fingerprint ) []interface {} {
3024+ if apiObject == nil {
3025+ return nil
3026+ }
3027+ return []interface {}{
3028+ map [string ]interface {}{
3029+ "fallback_behavior" : apiObject .FallbackBehavior ,
3030+ },
3031+ }
3032+ }
3033+
29523034func flattenRateLimitLabelNamespace (apiObject * awstypes.RateLimitLabelNamespace ) []interface {} {
29533035 if apiObject == nil {
29543036 return nil
@@ -3024,6 +3106,12 @@ func flattenRateBasedStatementCustomKeys(apiObject []awstypes.RateBasedStatement
30243106 map [string ]interface {}{},
30253107 }
30263108 }
3109+ if o .JA3Fingerprint != nil {
3110+ tfMap ["ja3_fingerprint" ] = flattenRateLimitJa3Fingerprint (o .JA3Fingerprint )
3111+ }
3112+ if o .JA4Fingerprint != nil {
3113+ tfMap ["ja4_fingerprint" ] = flattenRateLimitJa4Fingerprint (o .JA4Fingerprint )
3114+ }
30273115 if o .LabelNamespace != nil {
30283116 tfMap ["label_namespace" ] = flattenRateLimitLabelNamespace (o .LabelNamespace )
30293117 }
0 commit comments