Home
Relevant source files
The following files were used as context for generating this wiki page:
The Terraform AWS provider is a plugin for Terraform that enables the full lifecycle management of Amazon Web Services (AWS) resources. It acts as a bridge between Terraform's declarative configuration language and the AWS APIs. This provider is developed and maintained internally by the HashiCorp AWS Provider team.
The project welcomes community contributions and has established resources and guidelines to facilitate this. For security-related concerns, a dedicated contact is available for responsible disclosure.
Sources: README.md:1-20
Project Overview
The provider's primary function is to interact with AWS services to create, read, update, and delete resources based on a user's Terraform configuration.
This diagram illustrates the high-level interaction between the user, Terraform, the AWS Provider, and AWS.
Sources: README.md:14-15
Community and Support
The project maintains several channels for community engagement, support, and discussion.
| Channel | Link | Description |
|---|---|---|
| Website | terraform.io | Official Terraform website. |
| Tutorials | learn.hashicorp.com | Getting-started guides and tutorials. |
| Forums | discuss.hashicorp.com | Primary forum for discussing the AWS provider. |
| Chat | Gitter | Real-time community chat. |
| Mailing List | Google Groups | Email-based discussions. |
Sources: README.md:5-13
Repository Structure
The provider's internal codebase is organized into packages based on the corresponding AWS service. This modular structure is evident in the internal/service/ directory, where each subdirectory contains the logic for a specific service.
This structure is intended for provider contributors and maintainers. Each service-specific package contains links to its corresponding AWS SDK and Terraform documentation.
Sources: internal/service/fms/README.md, internal/service/dms/README.md, internal/service/waf/README.md, internal/service/lambda/README.md, internal/service/iam/README.md
The following diagram shows a sample of this service-based package organization.
Contributing and Issue Management
Contributions from the community are highly encouraged. The project uses a structured system of GitHub issue labels to manage contributions, bugs, and feature requests. These labels are defined as code using Terraform itself within the repository's infrastructure/ directory.
Sources: README.md:41-45, infrastructure/repository/labels-workflow.tf
Issue Labels
The labels provide a clear and consistent way to categorize issues and pull requests, helping maintainers and contributors understand the state and context of the work. The labels are managed via a Terraform configuration.
Sources: infrastructure/repository/labels-workflow.tf:1-4
# infrastructure/repository/labels-workflow.tf
resource "github_issue_label" "workflow" {
for_each = var.workflow_labels
repository = "terraform-provider-aws"
name = each.key
color = each.value.color
description = each.value.description
}
Sources: infrastructure/repository/labels-workflow.tf:151-158
The table below highlights some of the key workflow labels and their meanings.
| Label | Color | Description |
|---|---|---|
bug | ec585d | Addresses a defect in current functionality. |
enhancement | 844fba | Requests to existing resources that expand the functionality or scope. |
new-resource | 8040c9 | Introduces a new resource. |
new-data-source | ac72f0 | Introduces a new data source. |
breaking-change | ec585d | Introduces a breaking change in current functionality; usually deferred to the next major release. |
documentation | f4ecff | Introduces or discusses updates to documentation. |
needs-triage | dc477d | Waiting for first response or review from a maintainer. |
good first issue | 63d0ff | Call to action for new contributors looking for a place to start. Smaller or straightforward issues. |
waiting-response | d3353f | Maintainers are waiting on response from community or contributor. |
technical-debt | d1ebff | Addresses areas of the codebase that need refactoring or redesign. |
Sources: infrastructure/repository/labels-workflow.tf:9-148
Issue Triage Flow
The labels facilitate a structured workflow for handling incoming issues. The following diagram shows a simplified representation of an issue's lifecycle from creation to resolution.