issues:
  exclude-rules:
    # Exclude issues bypassing staticcheck.conf
    - linters:
        - staticcheck
      text: "SA1019:"

    - linters:
        - unparam
      text: "always receives"

  max-per-linter: 0
  max-same-issues: 0

linters:
  disable-all: true
  enable:
    - deadcode
    - errcheck
    - gofmt
    - gomnd
    - gosimple
    - ineffassign
    - makezero
    - misspell
    - nakedret
    - nilerr
    - nolintlint
    - staticcheck
    - structcheck
    - unconvert
    - unparam
    - varcheck
    - vet

linters-settings:
  errcheck:
    ignore: github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema:ForceNew|Set,fmt:.*,io:Close
  gomnd:
    settings:
      mnd:
        checks:
          - argument
        ignored-functions:
          # AWS Go SDK
          - aws.Int64
          - request.ConstantWaiterDelay
          - request.WithWaiterMaxAttempts
          # AWS Provider
          - mapMaxItems
          - wafv2RootStatementSchema
          - wafv2WebACLRootStatementSchema
          - nullable.*
          - sweep.SweepOrchestratorContext
          # Terraform Plugin SDK
          - resource.Retry
          - schema.DefaultTimeout
          - validation.*
          # Go
          - make
          - strconv.FormatFloat
          - strconv.FormatInt
          - strconv.ParseFloat
          - strconv.ParseInt
          - strings.SplitN
  nolintlint:
    allow-leading-space: false
    require-explanation: true
    require-specific: true
    allow-no-explanation:
      - unparam
      - gomnd

run:
  timeout: 20m
