Skip to content

Latest commit

 

History

History
 
 

names

names

Package names provides AWS service-name information that is critical to the Terraform AWS Provider working correctly. If you are unsure about a change you are making, please do not hesitate to ask!

NOTE: The information in data/names_data.csv affects the provider, generators, documentation, website navigation, etc. working correctly. Please do not make any changes until you understand the table below.

The core of the names package is data/names_data.csv, which contains raw, comma-separated data about naming in the AWS Provider, AWS Go SDKs v1 and v2, and AWS CLI. The file is dynamically embedded at build time in the AWS Provider and referenced by generators when generating code. The information it contains must be correct. Please double-check any changes.

Consumers of names include:

  • Package provider (internal/provider)
  • Package conns (internal/conns)
  • AWS Provider generators
  • skaff tool

After any edits to data/names_data.csv, run make gen. Doing so regenerates code and performs checks on data/names_data.csv.

The columns of data/names_data.csv are as follows:

Index Name Use Description
0 AWSCLIV2Command Reference Service command in AWS CLI v2
1 AWSCLIV2CommandNoDashes Reference Same as AWSCLIV2Command without dashes
2 GoV1Package Code AWS SDK for Go v1 package name
3 GoV2Package Code AWS SDK for Go v2 package name
4 ProviderPackageActual Code Actual TF AWS provide package name if ProviderPackageCorrect is not used; takes precedence over ProviderPackageCorrect if both are defined
5 ProviderPackageCorrect Code Shorter of AWSCLIV2CommandNoDashes and GoV2Package; should not be blank if either exists; same as Service Identifier; what the TF AWS Provider package name should be; ProviderPackageActual takes precedence
6 SplitPackageRealPackage Code If multiple "services" live in one service, this is the package where the service's Go files live (e.g., VPC is part of EC2)
7 Aliases Code Semicolon-separated list of name variations (e.g., for "AMP", prometheus;prometheusservice). Do not include ProviderPackageActual (or ProviderPackageCorrect, if blank) since that will create duplicates in the Custom Endpoints guide.
8 ProviderNameUpper Code Correctly capitalized ProviderPackageActual, if it exists, otherwise ProviderPackageCorrect
9 GoV1ClientTypeName Code Exact name (i.e., spelling and capitalization) of the AWS SDK for Go v1 client type (e.g., see the New() return type for SES)
10 SkipClientGenerate Code Some service clients need special configuration rather than the default generated configuration; use a non-empty value to skip generation but you must then manually configure the client in internal/conns/config.go
11 ClientSDKV1 Code Whether, in the TF AWS Provider, the service currently uses AWS SDK for Go v1; use 1 or leave empty
12 ClientSDKV2 Code Whether, in the TF AWS Provider, the service currently uses AWS SDK for Go v2; use 2 or leave emtpy
13 ResourcePrefixActual Code Regular expression to match anomalous TF resource name prefixes (e.g., for the resource name aws_config_config_rule, aws_config_ will match all resources); only use if ResourcePrefixCorrect is not suitable (e.g., aws_codepipeline_ won't work as there is only one resource named aws_codepipeline); takes precedence over ResourcePrefixCorrect
14 ResourcePrefixCorrect Code Regular expression to match what resource name prefixes should be (i.e., aws_ + ProviderPackageCorrect + _); used if ResourcePrefixActual is blank
15 FilePrefix Code If multiple "services" live in one service, this is the prefix that files must have to be associated with this sub-service (e.g., VPC files in the EC2 service are prefixed with vpc_); see also SplitPackageRealPackage
16 DocPrefix Code Semicolon-separated list of prefixes for service documentation files in website/docs/r and website/docs/d; usually only one prefix, i.e., <**ProviderPackageCorrect**>_
17 HumanFriendly Code [REQUIRED] Human-friendly name of service as used by AWS; documentation subcategory must exactly match this value; used in website navigation and error messages
18 Brand Code Either Amazon, AWS, or blank (rare) as used by AWS; used in error messages
19 Exclude Code Whether the service should be included; if included (blank), ProviderPackageActual or ProviderPackageCorrect must have a value
20 NotImplemented Code Whether the service is implemented by the provider
21 EndpointOnly Code If NotImplemented is non-blank, whether the service endpoint should be included in the provider endpoints configuration
22 AllowedSubcategory Code If Exclude is non-blank, whether to include HumanFriendly in website/allowed-subcategories.txt anyway. In other words, if non-blank, overrides Exclude in some situations. Some excluded pseudo-services (e.g., VPC is part of EC2) are still subcategories. Only applies if Exclude is non-blank.
23 DeprecatedEnvVar Code Deprecated AWS_<service>_ENDPOINT envvar defined for some services
24 TFAWSEnvVar Code TF_AWS_<service>_ENDPOINT envvar defined for some services
25 Note Reference Very brief note usually to explain why excluded

For more information about service naming, see the Naming Guide.