provider-resources
Implement Terraform Provider resources and data sources with complete CRUD operations and testing.
- Covers both SDKv2 and Plugin Framework patterns for resource implementation, including schema design, plan modifiers, and validators
- Provides complete CRUD operation examples (Create, Read, Update, Delete) with error handling, state management, and resource not-found patterns
- Includes acceptance testing patterns: basic tests, disappears tests, helper functions, and test execution commands
- Demonstrates schema design with attribute types, sensitive attributes, plan modifiers for replacement and state preservation, and validation rules
- Covers state management including finder functions, wait-for-state logic, and proper error classification for API responses
Terraform Provider Resources Implementation Guide
Overview
This guide covers developing Terraform Provider resources and data sources using the Terraform Plugin Framework. Resources represent infrastructure objects that Terraform manages through Create, Read, Update, and Delete (CRUD) operations.
References:
File Structure
Resources follow the standard service package structure:
internal/service/<service>/
├── <resource_name>.go # Resource implementation
├── <resource_name>_test.go # Acceptance tests
More from hashicorp/agent-skills
terraform-style-guide
Generate Terraform HCL code following HashiCorp's official style conventions and best practices. Use when writing, reviewing, or generating Terraform configurations.
4.5Kterraform-test
Comprehensive guide for writing and running Terraform tests. Use when creating test files (.tftest.hcl), writing test scenarios with run blocks, validating infrastructure behavior with assertions, mocking providers and data sources, testing module outputs and resource configurations, or troubleshooting Terraform test syntax and execution.
2.8Krefactor-module
Transform monolithic Terraform configurations into reusable, maintainable modules following HashiCorp's module design principles and community best practices.
2.2Kterraform-stacks
Comprehensive guide for working with HashiCorp Terraform Stacks. Use when creating, modifying, or validating Terraform Stack configurations (.tfcomponent.hcl, .tfdeploy.hcl files), working with stack components and deployments from local modules, public registry, or private registry sources, managing multi-region or multi-environment infrastructure, or troubleshooting Terraform Stacks syntax and structure.
2.1Kterraform-search-import
Discover existing cloud resources using Terraform Search queries and bulk import them into Terraform management. Use when bringing unmanaged infrastructure under Terraform control, auditing cloud resources, or migrating to IaC.
1.4Knew-terraform-provider
Use this when scaffolding a new Terraform provider.
1.3K