.ci/providerlint/README.md
The providerlint tool is a Terraform Provider code linting tool, specifically tailored for the Terraform AWS Provider.
For additional information about each check, you can run providerlint help NAME.
The providerlint tool extends the tfproviderlint tool and its checks. See the tfproviderlint documentation for additional information about the checks it provides.
| Check | Description |
|---|---|
| AWSAT001 | check for resource.TestMatchResourceAttr() calls against ARN attributes |
| AWSAT002 | check for hardcoded AMI IDs |
| AWSAT003 | check for hardcoded regions |
| AWSAT004 | check for TestCheckResourceAttr() calls with hardcoded TypeSet state hashes |
| AWSAT005 | check for hardcoded AWS partitions in ARNs |
| AWSAT006 | check for hardcoded AWS partition DNS suffixes |
| Check | Description |
|---|---|
| AWSR001 | check for fmt.Sprintf() calls using .amazonaws.com domain suffix |
| AWSR002 | check for d.Set() of tags attribute that should include IgnoreConfig() |
| Check | Description |
|---|---|
| AWSV001 | check for validation.StringInSlice() calls using []string parameter |
WARNING: The vendor directory for this module is required,
because the analysistest package,
the testing framework for the go/analysis framework,
does not support Go Modules.
This project is built on the tfproviderlint project and the go/analysis framework.
Helpful tooling for development:
astdump: a tool for displaying the AST form of Go file$ go test ./...
NOTE: Provider-specific analyzers should implement their own namespace outside tfproviderlint's AT### (acceptance testing), R### (resource), and S### (schema) to prevent naming collisions.
passes/. The new directory name should match the name of the new analyzer.
passes/NAME/README.md which documents at least a description of analyzer.passes/NAME/NAME.go which implements Analyzer.passes/NAME/README.md.passes/NAME/NAME_test.go which implements analysistest.TestData() and analysistest.Run().passes/NAME/testdata/src/a directory with Go source files that implement passing and failing code based on analysistest framework.analysistest package does not support Go Modules currently, each analyzer that implements testing must add a symlink to the top level vendor directory in the testdata/src/a directory. e.g. ln -s ../../../../../vendor passes/NAME/testdata/src/a/vendor.README.md (this file).