Categorygithub.com/hashicorp/terraform-plugin-framework

# README

PkgGoDev

Terraform Plugin Framework

terraform-plugin-framework is a module for building Terraform providers. It is built on terraform-plugin-go. It aims to provide as much of the power, predictability, and versatility of terraform-plugin-go as it can while abstracting away implementation details and repetitive, verbose tasks.

Getting Started

Status

terraform-plugin-framework has reached General Availability phase and follows semantic versioning for Go and Terraform compatibility promises. We recommend only using tagged releases of this Go module and examining the CHANGELOG when upgrading to a new release. Major version releases contain breaking changes to existing provider code. Minor version releases introduce new functionality. Patch version releases contain bug fixes or documentation updates.

Refer to Plugin Framework Benefits for more information about benefits over terraform-plugin-sdk.

Terraform CLI Compatibility

Providers built with this framework are compatible with Terraform version v0.12 and above.

Go Compatibility

This project follows the support policy of Go as its support policy. The two latest major releases of Go are supported by the project.

Currently, that means Go 1.21 or later must be used when including this project as a dependency.

Contributing

See .github/CONTRIBUTING.md

License

Mozilla Public License v2.0

# Packages

Package attr contains type and value interfaces for core framework and provider-defined data types.
Package datasource contains all interfaces, request types, and response types for a data source implementation.
Package diag implements diagnostic functionality, which is a practitioner feedback mechanism for providers.
Package function contains all interfaces, request types, and response types for a Terraform Provider function implementation.
Package path implements attribute path functionality, which defines transversals into schema-based data.
Package provider contains all interfaces, request types, and response types for a provider implementation.
Package providerserver implements functionality for serving a provider, such as directly starting a server in a production binary and conversion functions for testing.
Package resource contains all interfaces, request types, and response types for a managed resource implementation.
Package schema contains functionality common to all schemas.
Package tfsdk contains core framework functionality for schema data.
Package types contains the framework-defined data types and values, such as boolean, floating point, integer, list, map, object, set, and string.