Skip to content

Commit

Permalink
wafv2/schemas: Minor tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
YakDriver committed Oct 3, 2024
1 parent 564d464 commit c1659fe
Showing 1 changed file with 56 additions and 53 deletions.
109 changes: 56 additions & 53 deletions internal/service/wafv2/schemas.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,10 @@ var ruleLabelsSchema = sync.OnceValue(func() *schema.Schema {
Required: true,
ValidateFunc: validation.All(
validation.StringLenBetween(1, 1024),
validation.StringMatch(regexache.MustCompile(`^[0-9A-Za-z_\-:]+$`), "must contain only alphanumeric, underscore, hyphen, and colon characters"),
validation.StringMatch(
regexache.MustCompile(`^[0-9A-Za-z_\-:]+$`),
"must contain only alphanumeric, underscore, hyphen, and colon characters",
),
),
},
},
Expand Down Expand Up @@ -85,65 +88,65 @@ type schemaCache struct {

func (c *schemaCache) get(level int) *schema.Schema {
c.once.Do(func() {
var previous *schema.Schema
for i := range statementSchemaCacheSize {
if i == 0 {
c.values[0] = schema.Schema{
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"statement": {
Type: schema.TypeList,
Required: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"byte_match_statement": byteMatchStatementSchema(),
"geo_match_statement": geoMatchStatementSchema(),
"ip_set_reference_statement": ipSetReferenceStatementSchema(),
"label_match_statement": labelMatchStatementSchema(),
"regex_match_statement": regexMatchStatementSchema(),
"regex_pattern_set_reference_statement": regexPatternSetReferenceStatementSchema(),
"size_constraint_statement": sizeConstraintSchema(),
"sqli_match_statement": sqliMatchStatementSchema(),
"xss_match_statement": xssMatchStatementSchema(),
},
},
// Initialize the first element
c.values[0] = schema.Schema{
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"statement": {
Type: schema.TypeList,
Required: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"byte_match_statement": byteMatchStatementSchema(),
"geo_match_statement": geoMatchStatementSchema(),
"ip_set_reference_statement": ipSetReferenceStatementSchema(),
"label_match_statement": labelMatchStatementSchema(),
"regex_match_statement": regexMatchStatementSchema(),
"regex_pattern_set_reference_statement": regexPatternSetReferenceStatementSchema(),
"size_constraint_statement": sizeConstraintSchema(),
"sqli_match_statement": sqliMatchStatementSchema(),
"xss_match_statement": xssMatchStatementSchema(),
},
},
},
}
} else {
c.values[i] = schema.Schema{
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"statement": {
Type: schema.TypeList,
Required: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"and_statement": previous,
"byte_match_statement": byteMatchStatementSchema(),
"geo_match_statement": geoMatchStatementSchema(),
"ip_set_reference_statement": ipSetReferenceStatementSchema(),
"label_match_statement": labelMatchStatementSchema(),
"not_statement": previous,
"or_statement": previous,
"regex_match_statement": regexMatchStatementSchema(),
"regex_pattern_set_reference_statement": regexPatternSetReferenceStatementSchema(),
"size_constraint_statement": sizeConstraintSchema(),
"sqli_match_statement": sqliMatchStatementSchema(),
"xss_match_statement": xssMatchStatementSchema(),
},
},
},
}

// Initialize the rest of the elements
var previous *schema.Schema = &c.values[0]

Check failure on line 120 in internal/service/wafv2/schemas.go

View workflow job for this annotation

GitHub Actions / 3 of 3

ST1023: should omit type *schema.Schema from declaration; it will be inferred from the right-hand side (stylecheck)
for i := 1; i < statementSchemaCacheSize; i++ {
c.values[i] = schema.Schema{
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"statement": {
Type: schema.TypeList,
Required: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"and_statement": previous,
"byte_match_statement": byteMatchStatementSchema(),
"geo_match_statement": geoMatchStatementSchema(),
"ip_set_reference_statement": ipSetReferenceStatementSchema(),
"label_match_statement": labelMatchStatementSchema(),
"not_statement": previous,
"or_statement": previous,
"regex_match_statement": regexMatchStatementSchema(),
"regex_pattern_set_reference_statement": regexPatternSetReferenceStatementSchema(),
"size_constraint_statement": sizeConstraintSchema(),
"sqli_match_statement": sqliMatchStatementSchema(),
"xss_match_statement": xssMatchStatementSchema(),
},
},
},
},
}
},
}
previous = &c.values[i]
}
Expand Down

0 comments on commit c1659fe

Please sign in to comment.