Documentation ¶
Index ¶
- Variables
- func GetCredentialsFromProvider(runner tflint.Runner) (map[string]Credentials, error)
- func IsProviderPartNormalized(str string) (bool, error)
- func ParseProviderPart(given string) (string, error)
- type AssumeRole
- type Client
- func (c *Client) DescribeCacheParameterGroups() (map[string]bool, error)
- func (c *Client) DescribeCacheSubnetGroups() (map[string]bool, error)
- func (c *Client) DescribeDBParameterGroups() (map[string]bool, error)
- func (c *Client) DescribeDBSubnetGroups() (map[string]bool, error)
- func (c *Client) DescribeEgressOnlyInternetGateways() (map[string]bool, error)
- func (c *Client) DescribeInstances() (map[string]bool, error)
- func (c *Client) DescribeInternetGateways() (map[string]bool, error)
- func (c *Client) DescribeKeyPairs() (map[string]bool, error)
- func (c *Client) DescribeNatGateways() (map[string]bool, error)
- func (c *Client) DescribeNetworkInterfaces() (map[string]bool, error)
- func (c *Client) DescribeOptionGroups() (map[string]bool, error)
- func (c *Client) DescribeRouteTables() (map[string]bool, error)
- func (c *Client) DescribeSecurityGroups() (map[string]bool, error)
- func (c *Client) DescribeSubnets() (map[string]bool, error)
- func (c *Client) DescribeVpcPeeringConnections() (map[string]bool, error)
- func (c *Client) ListInstanceProfiles() (map[string]bool, error)
- type Config
- type Credentials
- type ProviderConfigRef
- type RuleSet
- type Runner
Constants ¶
This section is empty.
Variables ¶
var AwsProviderAssumeRoleBlockShema = &hclext.BodySchema{ Attributes: []hclext.AttributeSchema{ {Name: "role_arn", Required: true}, {Name: "session_name"}, {Name: "external_id"}, {Name: "policy"}, }, }
AwsProviderAssumeRoleBlockShema is a schema of `assume_role` block
var AwsProviderBlockSchema = &hclext.BodySchema{ Attributes: []hclext.AttributeSchema{ {Name: "access_key"}, {Name: "secret_key"}, {Name: "profile"}, {Name: "shared_credentials_file"}, {Name: "region"}, {Name: "alias"}, }, Blocks: []hclext.BlockSchema{ { Type: "assume_role", Body: AwsProviderAssumeRoleBlockShema, }, }, }
AwsProviderBlockSchema is a schema of `aws` provider block
Functions ¶
func GetCredentialsFromProvider ¶
func GetCredentialsFromProvider(runner tflint.Runner) (map[string]Credentials, error)
GetCredentialsFromProvider retrieves credentials from the "provider" block in the Terraform configuration
func IsProviderPartNormalized ¶ added in v0.14.0
original code: https://github.com/hashicorp/terraform/blob/3fbedf25430ead97eb42575d344427db3c32d524/internal/addrs/provider.go#L454-L464 IsProviderPartNormalized compares a given string to the result of ParseProviderPart(string)
func ParseProviderPart ¶ added in v0.14.0
original code: https://github.com/hashicorp/terraform/blob/3fbedf25430ead97eb42575d344427db3c32d524/internal/addrs/provider.go#L385-L442 ParseProviderPart processes an addrs.Provider namespace or type string provided by an end-user, producing a normalized version if possible or an error if the string contains invalid characters.
A provider part is processed in the same way as an individual label in a DNS domain name: it is transformed to lowercase per the usual DNS case mapping and normalization rules and may contain only letters, digits, and dashes. Additionally, dashes may not appear at the start or end of the string.
These restrictions are intended to allow these names to appear in fussy contexts such as directory/file names on case-insensitive filesystems, repository names on GitHub, etc. We're using the DNS rules in particular, rather than some similar rules defined locally, because the hostname part of an addrs.Provider is already a hostname and it's ideal to use exactly the same case folding and normalization rules for all of the parts.
In practice a provider type string conventionally does not contain dashes either. Such names are permitted, but providers with such type names will be hard to use because their resource type names will not be able to contain the provider type name and thus each resource will need an explicit provider address specified. (A real-world example of such a provider is the "google-beta" variant of the GCP provider, which has resource types that start with the "google_" prefix instead.)
It's valid to pass the result of this function as the argument to a subsequent call, in which case the result will be identical.
Types ¶
type AssumeRole ¶ added in v0.21.0
type Client ¶
type Client struct { IAM iamiface.IAMAPI EC2 ec2iface.EC2API RDS rdsiface.RDSAPI ElastiCache elasticacheiface.ElastiCacheAPI ELB elbiface.ELBAPI ELBV2 elbv2iface.ELBV2API ECS ecsiface.ECSAPI }
Client is a wrapper of the AWS SDK client It has interfaces for each services to make testing easier
func NewClient ¶
func NewClient(creds Credentials) (*Client, error)
NewClient returns a new Client with configured session
func (*Client) DescribeCacheParameterGroups ¶
DescribeCacheParameterGroups is a wrapper of DescribeCacheParameterGroups
func (*Client) DescribeCacheSubnetGroups ¶
DescribeCacheSubnetGroups is a wrapper of DescribeCacheSubnetGroups
func (*Client) DescribeDBParameterGroups ¶
DescribeDBParameterGroups is a wrapper of DescribeDBParameterGroups
func (*Client) DescribeDBSubnetGroups ¶
DescribeDBSubnetGroups is a wrapper of DescribeDBSubnetGroups
func (*Client) DescribeEgressOnlyInternetGateways ¶
DescribeEgressOnlyInternetGateways is wrapper of DescribeEgressOnlyInternetGateways
func (*Client) DescribeInstances ¶
DescribeInstances is a wrapper of DescribeInstances
func (*Client) DescribeInternetGateways ¶
DescribeInternetGateways is a wrapper of DescribeInternetGateways
func (*Client) DescribeKeyPairs ¶
DescribeKeyPairs is a wrapper of DescribeKeyPairs
func (*Client) DescribeNatGateways ¶
DescribeNatGateways is a wrapper of DescribeNatGateways
func (*Client) DescribeNetworkInterfaces ¶
DescribeNetworkInterfaces is a wrapper of DescribeNetworkInterfaces
func (*Client) DescribeOptionGroups ¶
DescribeOptionGroups is a wrapper of DescribeOptionGroups
func (*Client) DescribeRouteTables ¶
DescribeRouteTables is a wrapper of DescribeRouteTables
func (*Client) DescribeSecurityGroups ¶
DescribeSecurityGroups is a wrapper of DescribeSecurityGroups
func (*Client) DescribeSubnets ¶
DescribeSubnets is a wrapper of DescribeSubnets
func (*Client) DescribeVpcPeeringConnections ¶
DescribeVpcPeeringConnections is a wrapper of DescribeVpcPeeringConnections
type Config ¶
type Config struct { DeepCheck bool `hclext:"deep_check,optional"` AccessKey string `hclext:"access_key,optional"` SecretKey string `hclext:"secret_key,optional"` Region string `hclext:"region,optional"` Profile string `hclext:"profile,optional"` AssumeRole *AssumeRole `hclext:"assume_role,block"` }
Config is the configuration for the ruleset.
type Credentials ¶
type Credentials struct { AccessKey string SecretKey string Profile string CredsFile string AssumeRoleARN string AssumeRoleExternalID string AssumeRolePolicy string AssumeRoleSessionName string Region string }
Credentials is credentials for AWS used in deep check mode
func (Credentials) Merge ¶
func (c Credentials) Merge(other Credentials) Credentials
Merge returns a merged credentials
type ProviderConfigRef ¶ added in v0.14.0
type ProviderConfigRef struct { Name string NameRange hcl.Range Alias string AliasRange *hcl.Range // nil if alias not set }
original code: https://github.com/hashicorp/terraform/blob/3fbedf25430ead97eb42575d344427db3c32d524/internal/configs/resource.go#L484-L496
func DecodeProviderConfigRef ¶ added in v0.24.0
func DecodeProviderConfigRef(expr hcl.Expression, argName string) (*ProviderConfigRef, hcl.Diagnostics)
original code: https://github.com/hashicorp/terraform/blob/3fbedf25430ead97eb42575d344427db3c32d524/internal/configs/resource.go#L498-L569
type RuleSet ¶
type RuleSet struct { tflint.BuiltinRuleSet // contains filtered or unexported fields }
RuleSet is the custom ruleset for the AWS provider plugin.
func (*RuleSet) ApplyConfig ¶
func (r *RuleSet) ApplyConfig(body *hclext.BodyContent) error
ApplyConfig reflects the plugin configuration to the ruleset.
func (*RuleSet) ConfigSchema ¶ added in v0.13.0
func (r *RuleSet) ConfigSchema() *hclext.BodySchema
type Runner ¶
Runner is a wrapper of RPC client for inserting custom actions for AWS provider.
func (*Runner) AwsClient ¶
func (r *Runner) AwsClient(attributes hclext.Attributes) (*Client, error)
func (*Runner) EachStringSliceExprs ¶
func (r *Runner) EachStringSliceExprs(expr hcl.Expression, proc func(val string, expr hcl.Expression)) error
EachStringSliceExprs iterates an evaluated value and the corresponding expression If the given expression is a static list, get an expression for each value If not, the given expression is used as it is