aws

package
v0.30.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 11, 2024 License: MPL-2.0 Imports: 24 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
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

View Source
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

func IsProviderPartNormalized(str string) (bool, error)

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

func ParseProviderPart(given string) (string, error)

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 AssumeRole struct {
	RoleARN     string `hclext:"role_arn,optional"`
	ExternalID  string `hclext:"external_id,optional"`
	Policy      string `hclext:"policy,optional"`
	SessionName string `hclext:"session_name,optional"`
}

type Client

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

func (c *Client) DescribeCacheParameterGroups() (map[string]bool, error)

DescribeCacheParameterGroups is a wrapper of DescribeCacheParameterGroups

func (*Client) DescribeCacheSubnetGroups

func (c *Client) DescribeCacheSubnetGroups() (map[string]bool, error)

DescribeCacheSubnetGroups is a wrapper of DescribeCacheSubnetGroups

func (*Client) DescribeDBParameterGroups

func (c *Client) DescribeDBParameterGroups() (map[string]bool, error)

DescribeDBParameterGroups is a wrapper of DescribeDBParameterGroups

func (*Client) DescribeDBSubnetGroups

func (c *Client) DescribeDBSubnetGroups() (map[string]bool, error)

DescribeDBSubnetGroups is a wrapper of DescribeDBSubnetGroups

func (*Client) DescribeEgressOnlyInternetGateways

func (c *Client) DescribeEgressOnlyInternetGateways() (map[string]bool, error)

DescribeEgressOnlyInternetGateways is wrapper of DescribeEgressOnlyInternetGateways

func (*Client) DescribeInstances

func (c *Client) DescribeInstances() (map[string]bool, error)

DescribeInstances is a wrapper of DescribeInstances

func (*Client) DescribeInternetGateways

func (c *Client) DescribeInternetGateways() (map[string]bool, error)

DescribeInternetGateways is a wrapper of DescribeInternetGateways

func (*Client) DescribeKeyPairs

func (c *Client) DescribeKeyPairs() (map[string]bool, error)

DescribeKeyPairs is a wrapper of DescribeKeyPairs

func (*Client) DescribeNatGateways

func (c *Client) DescribeNatGateways() (map[string]bool, error)

DescribeNatGateways is a wrapper of DescribeNatGateways

func (*Client) DescribeNetworkInterfaces

func (c *Client) DescribeNetworkInterfaces() (map[string]bool, error)

DescribeNetworkInterfaces is a wrapper of DescribeNetworkInterfaces

func (*Client) DescribeOptionGroups

func (c *Client) DescribeOptionGroups() (map[string]bool, error)

DescribeOptionGroups is a wrapper of DescribeOptionGroups

func (*Client) DescribeRouteTables

func (c *Client) DescribeRouteTables() (map[string]bool, error)

DescribeRouteTables is a wrapper of DescribeRouteTables

func (*Client) DescribeSecurityGroups

func (c *Client) DescribeSecurityGroups() (map[string]bool, error)

DescribeSecurityGroups is a wrapper of DescribeSecurityGroups

func (*Client) DescribeSubnets

func (c *Client) DescribeSubnets() (map[string]bool, error)

DescribeSubnets is a wrapper of DescribeSubnets

func (*Client) DescribeVpcPeeringConnections

func (c *Client) DescribeVpcPeeringConnections() (map[string]bool, error)

DescribeVpcPeeringConnections is a wrapper of DescribeVpcPeeringConnections

func (*Client) ListInstanceProfiles

func (c *Client) ListInstanceProfiles() (map[string]bool, error)

ListInstanceProfiles is a wrapper of ListInstanceProfiles

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"`
	SharedCredentialsFile string      `hclext:"shared_credentials_file,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

func (*RuleSet) NewRunner added in v0.23.0

func (r *RuleSet) NewRunner(runner tflint.Runner) (tflint.Runner, error)

NewRunner injects a custom AWS runner

type Runner

type Runner struct {
	tflint.Runner
	PluginConfig *Config
	AwsClients   map[string]*Client
}

Runner is a wrapper of RPC client for inserting custom actions for AWS provider.

func NewRunner

func NewRunner(runner tflint.Runner, config *Config) (*Runner, error)

NewRunner returns a custom AWS runner.

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

Directories

Path Synopsis
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL