diff --git a/website/docs/plugin/framework/acctests.mdx b/website/docs/plugin/framework/acctests.mdx index fc47808d2..e23cd6fbb 100644 --- a/website/docs/plugin/framework/acctests.mdx +++ b/website/docs/plugin/framework/acctests.mdx @@ -1,11 +1,12 @@ --- -page_title: 'Plugin Development - Framework: Acceptance Tests' +page_title: Acceptance tests description: >- - How to write acceptance tests for providers built on the framework. Acceptance - tests imitate applying configuration files. + Learn how to write acceptance tests for providers built on the framework. + Acceptance tests help ensure your provider works as expected by imitating + Terraform operations. --- -# Acceptance Tests +# Acceptance tests Implement provider resource and data source acceptance tests with the [terraform-plugin-testing module](/terraform/plugin/testing). These tests are designed to execute Terraform commands against real Terraform configurations, simulating practitioner experiences with creating, refreshing, updating, and deleting infrastructure. diff --git a/website/docs/plugin/framework/data-sources/configure.mdx b/website/docs/plugin/framework/data-sources/configure.mdx index 0fac9a737..11dda382b 100644 --- a/website/docs/plugin/framework/data-sources/configure.mdx +++ b/website/docs/plugin/framework/data-sources/configure.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Configure Data Sources' +page_title: Configure data sources description: >- - How to configure data sources with provider data or clients in the provider development framework. + Learn how to configure data sources with provider data or clients in the + Terraform plugin framework. --- -# Configure Data Sources +# Configure data sources [Data sources](/terraform/plugin/framework/data-sources) may require provider-level data or remote system clients to operate correctly. The framework supports the ability to configure this data and/or clients once within the provider, then pass that information to data sources by adding the `Configure` method. diff --git a/website/docs/plugin/framework/data-sources/index.mdx b/website/docs/plugin/framework/data-sources/index.mdx index 823f8c311..64dfb2ecc 100644 --- a/website/docs/plugin/framework/data-sources/index.mdx +++ b/website/docs/plugin/framework/data-sources/index.mdx @@ -1,11 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Data Sources' +page_title: Data sources description: >- - How to build data sources in the provider development framework. Data sources - allow Terraform to reference external data. + Data sources allow Terraform to reference external data. Learn how the + framework can help you implement data sources. --- -# Data Sources +# Data sources [Data sources](/terraform/language/data-sources) are an abstraction that allow Terraform to reference external data. Unlike [managed resources](/terraform/language/resources), Terraform does not manage the lifecycle of the resource or data. Data sources are intended to have no side-effects. diff --git a/website/docs/plugin/framework/data-sources/timeouts.mdx b/website/docs/plugin/framework/data-sources/timeouts.mdx index 1472f0e68..7868dd402 100644 --- a/website/docs/plugin/framework/data-sources/timeouts.mdx +++ b/website/docs/plugin/framework/data-sources/timeouts.mdx @@ -1,7 +1,7 @@ --- -page_title: 'Plugin Development - Framework: Timeouts' +page_title: Timeouts description: >- - How to use timeouts with the provider development framework. + Learn how to implement timeouts with the Terraform plugin framework. --- # Timeouts diff --git a/website/docs/plugin/framework/data-sources/validate-configuration.mdx b/website/docs/plugin/framework/data-sources/validate-configuration.mdx index 861f1ccc7..0a0a55dc6 100644 --- a/website/docs/plugin/framework/data-sources/validate-configuration.mdx +++ b/website/docs/plugin/framework/data-sources/validate-configuration.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Validate Data Source Configurations' +page_title: Validate data source configurations description: >- - How to validate data source configurations with the provider development framework. + Learn how to validate data source configurations with the Terraform plugin + framework. --- -# Validate Configuration +# Validate data source configurations [Data sources](/terraform/plugin/framework/data-sources) support validating an entire practitioner configuration in either declarative or imperative logic. Feedback, such as required syntax or acceptable combinations of values, is returned via [diagnostics](/terraform/plugin/framework/diagnostics). diff --git a/website/docs/plugin/framework/debugging.mdx b/website/docs/plugin/framework/debugging.mdx index 9bc824ae6..ddae1484b 100644 --- a/website/docs/plugin/framework/debugging.mdx +++ b/website/docs/plugin/framework/debugging.mdx @@ -1,9 +1,10 @@ --- -page_title: Plugin Development - Debugging Framework Providers -description: How to implement debugger support in Framework Terraform providers. +page_title: Debugging framework providers +description: >- + Learn how to implement debugger support in framework Terraform providers. --- -# Debugging Framework Providers +# Debugging framework Providers This page contains implementation details for inspecting runtime information of a Terraform provider developed with Framework via a debugger tool by adjusting the [provider server](/terraform/plugin/framework/provider-servers) implementation. Review the top level [Debugging](/terraform/plugin/debugging) page for information pertaining to the overall Terraform provider debugging process and other inspection options, such as log-based debugging. diff --git a/website/docs/plugin/framework/deprecations.mdx b/website/docs/plugin/framework/deprecations.mdx index 017a4eaa1..c86ce0ae0 100644 --- a/website/docs/plugin/framework/deprecations.mdx +++ b/website/docs/plugin/framework/deprecations.mdx @@ -1,9 +1,11 @@ --- -page_title: 'Plugin Development - Deprecations, Removals, and Renames Best Practices' -description: 'Recommendations for deprecations, removals, and renames.' +page_title: Deprecations, removals, and renames +description: + Use the following recommendations to handle deprecations, removals, and + renames in framework providers. --- -# Deprecations, Removals, and Renames +# Deprecations, removals, and renames Terraform is trusted for managing many facets of infrastructure across many organizations. Part of that trust is due to consistent versioning guidelines and setting expectations for various levels of upgrades. Ensuring backwards compatibility for all patch and minor releases, potentially in concert with any upcoming major changes, is recommended and supported by the Terraform development framework. This allows operators to iteratively update their Terraform configurations rather than require massive refactoring. diff --git a/website/docs/plugin/framework/diagnostics.mdx b/website/docs/plugin/framework/diagnostics.mdx index 8a87d4326..7208d4845 100644 --- a/website/docs/plugin/framework/diagnostics.mdx +++ b/website/docs/plugin/framework/diagnostics.mdx @@ -1,11 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Errors and Warnings' -description: |- - How to return errors and warnings from the Terraform provider development - framework. +page_title: Errors and warnings +description: >- + Learn how to return errors and warnings from the Terraform plugin framework. --- -# Returning Errors and Warnings +# Returning errors and warnings Providers use `Diagnostics` to surface errors and warnings to practitioners, such as contextual messages returned from Terraform CLI at the end of diff --git a/website/docs/plugin/framework/ephemeral-resources/close.mdx b/website/docs/plugin/framework/ephemeral-resources/close.mdx index 7781c187b..dade8f2bd 100644 --- a/website/docs/plugin/framework/ephemeral-resources/close.mdx +++ b/website/docs/plugin/framework/ephemeral-resources/close.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Open Ephemeral Resources' +page_title: Closing ephemeral resources description: >- - How to implement ephemeral resource close in the provider development framework. + Learn how to close ephemeral resource in the Terraform plugin framework. --- -# Close Ephemeral Resources +# Closing Ephemeral Resources Close is an optional part of the Terraform lifecycle for an ephemeral resource, which is different from the [managed resource lifecycle](https://github.com/hashicorp/terraform/blob/main/docs/resource-instance-change-lifecycle.md). During any Terraform operation (like [`terraform plan`](/terraform/cli/commands/plan) or [`terraform apply`](/terraform/cli/commands/apply)), when an ephemeral resource's data is needed, Terraform initially retrieves that data with the [`Open`](/terraform/plugin/framework/ephemeral-resources/open) lifecycle handler. Once the ephemeral resource data is no longer needed, Terraform calls the provider `CloseEphemeralResource` RPC, in which the framework calls the [`ephemeral.EphemeralResourceWithClose` interface `Close` method](https://pkg.go.dev/github.com/hashicorp/terraform-plugin-framework/ephemeral#EphemeralResourceWithClose). The request contains any `Private` data set in the latest `Open` or `Renew` call. diff --git a/website/docs/plugin/framework/ephemeral-resources/configure.mdx b/website/docs/plugin/framework/ephemeral-resources/configure.mdx index d0616cd6a..fef8e4a12 100644 --- a/website/docs/plugin/framework/ephemeral-resources/configure.mdx +++ b/website/docs/plugin/framework/ephemeral-resources/configure.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Configure Ephemeral Resources' +page_title: Configuring ephemeral resources description: >- - How to configure ephemeral resources with provider data or clients in the provider development framework. + Learn how to configure ephemeral resources with provider data or clients in + the Terraform plugin framework. --- -# Configure Ephemeral Resources +# Configuring ephemeral resources [Ephemeral Resources](/terraform/plugin/framework/ephemeral-resources) may require provider-level data or remote system clients to operate correctly. The framework supports the ability to configure this data and/or clients once within the provider, then pass that information to ephemeral resources by adding the `Configure` method. diff --git a/website/docs/plugin/framework/ephemeral-resources/index.mdx b/website/docs/plugin/framework/ephemeral-resources/index.mdx index 1fb653d08..194d65d5f 100644 --- a/website/docs/plugin/framework/ephemeral-resources/index.mdx +++ b/website/docs/plugin/framework/ephemeral-resources/index.mdx @@ -1,12 +1,12 @@ --- -page_title: 'Plugin Development - Framework: Ephemeral Resources' +page_title: Ephemeral resources description: >- - How to build ephemeral resources in the provider development framework. Ephemeral - resources allow Terraform to reference external data, while guaranteeing that this - data will not be persisted in plan or state. + Ephemeral resources allow Terraform to reference external data, while + guaranteeing that this data will not be persisted in plan or state. Learn how + to implement ephemeral resources in the Terraform plugin framework. --- -# Ephemeral Resources +# Ephemeral resources diff --git a/website/docs/plugin/framework/ephemeral-resources/open.mdx b/website/docs/plugin/framework/ephemeral-resources/open.mdx index d0636d4b4..3f7ff646a 100644 --- a/website/docs/plugin/framework/ephemeral-resources/open.mdx +++ b/website/docs/plugin/framework/ephemeral-resources/open.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Open Ephemeral Resources' +page_title: Opening ephemeral resources description: >- - How to implement ephemeral resource open in the provider development framework. + Learn how to open ephemeral resource in the Terraform plugin framework. --- -# Open Ephemeral Resources +# Opening ephemeral resources Open is part of the Terraform lifecycle for an ephemeral resource, which is different from the [managed resource lifecycle](https://github.com/hashicorp/terraform/blob/main/docs/resource-instance-change-lifecycle.md). During any Terraform operation (like [`terraform plan`](/terraform/cli/commands/plan) or [`terraform apply`](/terraform/cli/commands/apply)), when an ephemeral resource's data is needed, Terraform calls the provider `OpenEphemeralResource` RPC, in which the framework calls the [`ephemeral.EphemeralResource` interface `Open` method](https://pkg.go.dev/github.com/hashicorp/terraform-plugin-framework/ephemeral#EphemeralResource.Open). The request contains the configuration supplied to Terraform for the ephemeral resource. The response contains the ephemeral result data. The data is defined by the [schema](/terraform/plugin/framework/handling-data/schemas) of the ephemeral resource. diff --git a/website/docs/plugin/framework/ephemeral-resources/renew.mdx b/website/docs/plugin/framework/ephemeral-resources/renew.mdx index 4886cb767..dadd729f7 100644 --- a/website/docs/plugin/framework/ephemeral-resources/renew.mdx +++ b/website/docs/plugin/framework/ephemeral-resources/renew.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Open Ephemeral Resources' +page_title: Renewing ephemeral resources description: >- - How to implement ephemeral resource renew in the provider development framework. + Learn how to renew ephemeral resource in the Terraform plugin framework. --- -# Renew Ephemeral Resources +# Renewing ephemeral resources Renew is an optional part of the Terraform lifecycle for an ephemeral resource, which is different from the [managed resource lifecycle](https://github.com/hashicorp/terraform/blob/main/docs/resource-instance-change-lifecycle.md). During any Terraform operation (like [`terraform plan`](/terraform/cli/commands/plan) or [`terraform apply`](/terraform/cli/commands/apply)), when an ephemeral resource's data is needed, Terraform initially retrieves that data with the [`Open`](/terraform/plugin/framework/ephemeral-resources/open) lifecycle handler. During `Open`, ephemeral resources can opt to include a timestamp in the `RenewAt` response field to indicate to Terraform when a provider must renew an ephemeral resource. If an ephemeral resource's data is still in-use and the `RenewAt` timestamp has passed, Terraform calls the provider `RenewEphemeralResource` RPC, in which the framework calls the [`ephemeral.EphemeralResourceWithRenew` interface `Renew` method](https://pkg.go.dev/github.com/hashicorp/terraform-plugin-framework/ephemeral#EphemeralResourceWithRenew). The request contains any `Private` data set in the latest `Open` or `Renew` call. The response contains `Private` data and an optional `RenewAt` field for further renew executions. diff --git a/website/docs/plugin/framework/ephemeral-resources/validate-configuration.mdx b/website/docs/plugin/framework/ephemeral-resources/validate-configuration.mdx index 874216adc..242dd4cfc 100644 --- a/website/docs/plugin/framework/ephemeral-resources/validate-configuration.mdx +++ b/website/docs/plugin/framework/ephemeral-resources/validate-configuration.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Validate Ephemeral Resource Configurations' +page_title: Validate ephemeral resource configurations description: >- - How to validate ephemeral resource configurations with the provider development framework. + Learn how to validate ephemeral resource configurations with the Terraform + plugin framework. --- -# Validate Configuration +# Validate ephemeral resource configurations [Ephemeral resources](/terraform/plugin/framework/ephemeral-resources) support validating an entire practitioner configuration in either declarative or imperative logic. Feedback, such as required syntax or acceptable combinations of values, is returned via [diagnostics](/terraform/plugin/framework/diagnostics). diff --git a/website/docs/plugin/framework/functions/concepts.mdx b/website/docs/plugin/framework/functions/concepts.mdx index a933a4dfa..23835d778 100644 --- a/website/docs/plugin/framework/functions/concepts.mdx +++ b/website/docs/plugin/framework/functions/concepts.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Function Concepts' +page_title: Provider-defined functions description: >- - Terraform concepts for provider-defined functions. + Learn how provider-defined functions enable Terraform providers to define + functions for practitions to use in their Terraform configurations. --- -# Function Concepts +# Provider-defined functions This page describes Terraform concepts relating to provider-defined functions within framework-based provider code. Provider-defined functions are supported in Terraform 1.8 and later. The [What is Terraform](/terraform/intro), [Terraform language](/terraform/language), and [Plugin Development](/terraform/plugin) documentation covers more general concepts behind Terraform's workflow, its configuration, and how it interacts with providers. diff --git a/website/docs/plugin/framework/functions/documentation.mdx b/website/docs/plugin/framework/functions/documentation.mdx index c7e7ec373..fd731ae0f 100644 --- a/website/docs/plugin/framework/functions/documentation.mdx +++ b/website/docs/plugin/framework/functions/documentation.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Document Functions' +page_title: Documenting functions description: >- - How to document provider-defined functions. + Learn how to document provider-defined functions with the Terraform plugin + framework. --- -# Document Functions +# Documenting functions When a function is [implemented](/terraform/plugin/framework/functions/implementation), ensure the function is discoverable by practitioners with usage information. diff --git a/website/docs/plugin/framework/functions/errors.mdx b/website/docs/plugin/framework/functions/errors.mdx index 8ff7b1501..64dc74931 100644 --- a/website/docs/plugin/framework/functions/errors.mdx +++ b/website/docs/plugin/framework/functions/errors.mdx @@ -1,11 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Function Errors' -description: |- - How to return function errors from the Terraform provider development - framework. +page_title: Returning errors from functions +description: >- + Learn how to return errors from provider-defined functions with the Terraform + plugin framework. --- -# Returning Function Errors +# Returning errors from function Providers use [`FuncError`](https://pkg.go.dev/github.com/hashicorp/terraform-plugin-framework/function#FuncError) to surface a practitioner-facing error generated during execution of provider-defined functions. These errors are @@ -159,4 +159,4 @@ func (f *ExampleFunction) Run(ctx context.Context, req function.RunRequest, resp resp.Error = function.ConcatFuncErrors(resp.Error, function.FuncErrorFromDiags(ctx, diags)) } -``` \ No newline at end of file +``` diff --git a/website/docs/plugin/framework/functions/implementation.mdx b/website/docs/plugin/framework/functions/implementation.mdx index 45c800878..c811870ee 100644 --- a/website/docs/plugin/framework/functions/implementation.mdx +++ b/website/docs/plugin/framework/functions/implementation.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Implement Functions' +page_title: Implement provider-defined functions description: >- - How to implement provider-defined functions in the provider development framework. + Learn how to implement provider-defined functions with the Terraform + plugin framework. --- -# Implement Functions +# Implement provider-defined functions The framework supports implementing functions based on Terraform's [concepts for provider-defined functions](/terraform/plugin/framework/functions/concepts). It is recommended to understand those concepts before implementing a function since the terminology is used throughout this page and there are details that simplify function handling as compared to other provider concepts. Provider-defined functions are supported in Terraform 1.8 and later. diff --git a/website/docs/plugin/framework/functions/index.mdx b/website/docs/plugin/framework/functions/index.mdx index 35126aa57..193c4ea1f 100644 --- a/website/docs/plugin/framework/functions/index.mdx +++ b/website/docs/plugin/framework/functions/index.mdx @@ -1,12 +1,13 @@ --- -page_title: 'Plugin Development - Framework: Functions' +page_title: Provider-defined functions overview description: >- - How to build functions in the provider development framework. Provider-defined - functions expose logic beyond Terraform's built-in functions and simplify - practitioner configurations. + Provider-defined functions expose logic beyond Terraform's built-in functions + that practitioners can use to simplify Terraform configurations. Learn how the + plugin framework can help you implement provider-defined functions. --- -# Functions + +# Provider-defined functions Functions are an abstraction that allow providers to expose computational logic beyond Terraform's [built-in functions](/terraform/language/functions) and simplify practitioner configurations. Provider-defined functions are supported in Terraform 1.8 and later. diff --git a/website/docs/plugin/framework/functions/parameters/bool.mdx b/website/docs/plugin/framework/functions/parameters/bool.mdx index 7e58f771f..3bf687562 100644 --- a/website/docs/plugin/framework/functions/parameters/bool.mdx +++ b/website/docs/plugin/framework/functions/parameters/bool.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Bool Function Parameter' +page_title: Boolean function parameters description: >- - Learn the bool function parameter type in the provider development framework. + Learn how to use the boolean function parameter type with the Terraform + plugin framework. --- -# Bool Function Parameter +# Boolean function parameters Bool function parameters expect a boolean true or false value from a practitioner configuration. Values are accessible in function logic by the Go built-in `bool` type, Go built-in `*bool` type, or the [framework bool type](/terraform/plugin/framework/handling-data/types/bool). diff --git a/website/docs/plugin/framework/functions/parameters/dynamic.mdx b/website/docs/plugin/framework/functions/parameters/dynamic.mdx index a4e2f82ed..e088e5c55 100644 --- a/website/docs/plugin/framework/functions/parameters/dynamic.mdx +++ b/website/docs/plugin/framework/functions/parameters/dynamic.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Dynamic Function Parameter' +page_title: Dynamic function parameters description: >- - Learn the dynamic function parameter type in the provider development framework. + Learn how to use dynamic fynction paramters with the Terraform plugin + framework. --- -# Dynamic Function Parameter +# Dynamic function parameters diff --git a/website/docs/plugin/framework/functions/parameters/float32.mdx b/website/docs/plugin/framework/functions/parameters/float32.mdx index f41a8cb31..423df0cb2 100644 --- a/website/docs/plugin/framework/functions/parameters/float32.mdx +++ b/website/docs/plugin/framework/functions/parameters/float32.mdx @@ -1,7 +1,8 @@ --- -page_title: 'Plugin Development - Framework: Float32 Function Parameter' +page_title: Float32 function parameters description: >- - Learn the float32 function parameter type in the provider development framework. + Learn how to use the 32-bit floating point function parameter type with the + Terraform plugin framework. --- # Float32 Function Parameter diff --git a/website/docs/plugin/framework/functions/parameters/float64.mdx b/website/docs/plugin/framework/functions/parameters/float64.mdx index 11f97239f..7dbe213ac 100644 --- a/website/docs/plugin/framework/functions/parameters/float64.mdx +++ b/website/docs/plugin/framework/functions/parameters/float64.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Float64 Function Parameter' +page_title: Float64 function parameters description: >- - Learn the float64 function parameter type in the provider development framework. + Learn how to use the 64-bit floating point function parameter type with the + Terraform plugin framework. --- -# Float64 Function Parameter +# Float64 function parameters diff --git a/website/docs/plugin/framework/functions/parameters/index.mdx b/website/docs/plugin/framework/functions/parameters/index.mdx index 65fb61e4f..76b4e6ed2 100644 --- a/website/docs/plugin/framework/functions/parameters/index.mdx +++ b/website/docs/plugin/framework/functions/parameters/index.mdx @@ -1,11 +1,12 @@ --- -page_title: 'Plugin Development - Framework: Function Parameters' +page_title: Function parameters description: >- - Learn the function parameter types in the provider development framework. - Parameters are positional data arguments in a function definition. + The Terraform plugin framework includes multiple built-in function parameter + types and supports dynamic parameters. Parameters are positional data + arguments in a function definition. --- -# Parameters +# Function parameters Parameters in [function definitions](/terraform/plugin/framework/functions/implementation#definition-method) describes how data values are passed to the function logic. Every parameter type has an associated [value type](/terraform/plugin/framework/handling-data/types), although this data handling is simplified for function implementations over other provider concepts, such as resource implementations. @@ -126,4 +127,4 @@ func (v CustomStringValue) ValidateParameter(ctx context.Context, req function.V } ``` -Refer to [Custom Types](/terraform/plugin/framework/handling-data/types/custom) for further details on creating provider-defined types and values \ No newline at end of file +Refer to [Custom Types](/terraform/plugin/framework/handling-data/types/custom) for further details on creating provider-defined types and values diff --git a/website/docs/plugin/framework/functions/parameters/int32.mdx b/website/docs/plugin/framework/functions/parameters/int32.mdx index 9cb7c6885..de87e82b1 100644 --- a/website/docs/plugin/framework/functions/parameters/int32.mdx +++ b/website/docs/plugin/framework/functions/parameters/int32.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Int32 Function Parameter' +page_title: Int32 function parameters description: >- - Learn the int32 function parameter type in the provider development framework. + Learn how to use the 32-bit integer function parameter type with the + Terraform plugin framework. --- -# Int32 Function Parameter +# Int32 function parameters diff --git a/website/docs/plugin/framework/functions/parameters/int64.mdx b/website/docs/plugin/framework/functions/parameters/int64.mdx index ab3b272d2..ecc25c468 100644 --- a/website/docs/plugin/framework/functions/parameters/int64.mdx +++ b/website/docs/plugin/framework/functions/parameters/int64.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Int64 Function Parameter' +page_title: Int64 function parameters description: >- - Learn the int64 function parameter type in the provider development framework. + Learn how to use the 64-bit integer function parameter type with the + Terraform plugin framework. --- -# Int64 Function Parameter +# Int32 function parameters diff --git a/website/docs/plugin/framework/functions/parameters/list.mdx b/website/docs/plugin/framework/functions/parameters/list.mdx index 30da0e91a..edbca773a 100644 --- a/website/docs/plugin/framework/functions/parameters/list.mdx +++ b/website/docs/plugin/framework/functions/parameters/list.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: List Function Parameter' +page_title: List function parameters description: >- - Learn the list function parameter type in the provider development framework. + Learn how to use the list function parameter type with the + Terraform plugin framework. --- -# List Function Parameter +# List function parameters List function parameters expect an ordered collection of single element type value from a practitioner configuration. Values are accessible in function logic by a Go slice of an appropriate pointer type to match the element type `[]*T` or the [framework list type](/terraform/plugin/framework/handling-data/types/list). diff --git a/website/docs/plugin/framework/functions/parameters/map.mdx b/website/docs/plugin/framework/functions/parameters/map.mdx index 8eda096fa..49d35d893 100644 --- a/website/docs/plugin/framework/functions/parameters/map.mdx +++ b/website/docs/plugin/framework/functions/parameters/map.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Map Function Parameter' +page_title: Map function parameters description: >- - Learn the map function parameter type in the provider development framework. + Learn how to use the map function parameter type with the + Terraform plugin framework. --- -# Map Function Parameter +# List function parameters Map function parameters expect a mapping of arbitrary string keys to values of single element type from a practitioner configuration. Values are accessible in function logic by a Go map of string keys to values of an appropriate pointer type to match the element type `map[string]*T` or the [framework map type](/terraform/plugin/framework/handling-data/types/map). diff --git a/website/docs/plugin/framework/functions/parameters/number.mdx b/website/docs/plugin/framework/functions/parameters/number.mdx index b5e30fb70..256d521ef 100644 --- a/website/docs/plugin/framework/functions/parameters/number.mdx +++ b/website/docs/plugin/framework/functions/parameters/number.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Number Function Parameter' +page_title: Number function parameters description: >- - Learn the number function parameter type in the provider development framework. + Learn how to use the arbitrary precision number function parameter type with + the Terraform plugin framework. --- -# Number Function Parameter +# Number function parameters diff --git a/website/docs/plugin/framework/functions/parameters/object.mdx b/website/docs/plugin/framework/functions/parameters/object.mdx index dd478f854..41bdcbae4 100644 --- a/website/docs/plugin/framework/functions/parameters/object.mdx +++ b/website/docs/plugin/framework/functions/parameters/object.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Object Function Parameter' +page_title: Object function parameters description: >- - Learn the object function parameter type in the provider development framework. + Learn how to use the object function parameter type with + the Terraform plugin framework. --- -# Object Function Parameter +# Object function parameters Object function parameters expect a single structure mapping explicit attribute names to type definitions from a practitioner configuration. Values are accessible in function logic by a Go structure type annotated with `tfsdk` field tags or the [framework object type](/terraform/plugin/framework/handling-data/types/object). diff --git a/website/docs/plugin/framework/functions/parameters/set.mdx b/website/docs/plugin/framework/functions/parameters/set.mdx index ccd8117c5..dc53f9952 100644 --- a/website/docs/plugin/framework/functions/parameters/set.mdx +++ b/website/docs/plugin/framework/functions/parameters/set.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Set Function Parameter' +page_title: Set function parameters description: >- - Learn the set function parameter type in the provider development framework. + Learn how to use the set function parameter type with + the Terraform plugin framework. --- -# Set Function Parameter +# Set function parameters Set function parameters expect an unordered, unique collection of single element type value from a practitioner configuration. Values are accessible in function logic by a Go slice of an appropriate pointer type to match the element type `[]*T` or the [framework set type](/terraform/plugin/framework/handling-data/types/set). diff --git a/website/docs/plugin/framework/functions/parameters/string.mdx b/website/docs/plugin/framework/functions/parameters/string.mdx index c11e33b5c..bb449009c 100644 --- a/website/docs/plugin/framework/functions/parameters/string.mdx +++ b/website/docs/plugin/framework/functions/parameters/string.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: String Function Parameter' +page_title: String function parameters description: >- - Learn the string function parameter type in the provider development framework. + Learn how to use the string function parameter type with + the Terraform plugin framework. --- -# String Function Parameter +# String function parameters String function parameters expect a collection of UTF-8 encoded bytes from a practitioner configuration. Values are accessible in function logic by the Go built-in `string` type, Go built-in `*string` type, or the [framework string type](/terraform/plugin/framework/handling-data/types/string). diff --git a/website/docs/plugin/framework/functions/returns/bool.mdx b/website/docs/plugin/framework/functions/returns/bool.mdx index e2773b5ee..0da2af0d0 100644 --- a/website/docs/plugin/framework/functions/returns/bool.mdx +++ b/website/docs/plugin/framework/functions/returns/bool.mdx @@ -1,12 +1,13 @@ --- -page_title: 'Plugin Development - Framework: Bool Function Return' +page_title: Boolean return values description: >- - Learn the bool function return type in the provider development framework. + Learn how to use the boolean function return value type with the Terraform + plugin framework. --- -# Bool Function Return +# Boolean return values -Bool function return expects a boolean true or false value from function logic. Set values in function logic with the Go built-in `bool` type, Go built-in `*bool` type, or the [framework bool type](/terraform/plugin/framework/handling-data/types/bool). +Bool function return values expect a boolean true or false value from function logic. Set values in function logic with the Go built-in `bool` type, Go built-in `*bool` type, or the [framework bool type](/terraform/plugin/framework/handling-data/types/bool). ## Function Definition diff --git a/website/docs/plugin/framework/functions/returns/dynamic.mdx b/website/docs/plugin/framework/functions/returns/dynamic.mdx index d9555abde..844d5926a 100644 --- a/website/docs/plugin/framework/functions/returns/dynamic.mdx +++ b/website/docs/plugin/framework/functions/returns/dynamic.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Dynamic Function Return' +page_title: Dynamic function return values description: >- - Learn the dynamic function return type in the provider development framework. + Learn how to use dynamic function return value types with the Terraform + plugin framework. --- -# Dynamic Function Return +# Dynamic function return values diff --git a/website/docs/plugin/framework/functions/returns/float32.mdx b/website/docs/plugin/framework/functions/returns/float32.mdx index b4688bb4b..fbd0f48e5 100644 --- a/website/docs/plugin/framework/functions/returns/float32.mdx +++ b/website/docs/plugin/framework/functions/returns/float32.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Float32 Function Return' +page_title: Float32 return values description: >- - Learn the float32 function return type in the provider development framework. + Learn how to use the 32-bit floating point function return value type with the + Terraform plugin framework. --- -# Float32 Function Return +# Float32 return values diff --git a/website/docs/plugin/framework/functions/returns/float64.mdx b/website/docs/plugin/framework/functions/returns/float64.mdx index edff1988a..2769c1d98 100644 --- a/website/docs/plugin/framework/functions/returns/float64.mdx +++ b/website/docs/plugin/framework/functions/returns/float64.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Float64 Function Return' +page_title: Float64 return values description: >- - Learn the float64 function return type in the provider development framework. + Learn how to use the 64-bit floating point function return value type with the + Terraform plugin framework. --- -# Float64 Function Return +# Float64 return values diff --git a/website/docs/plugin/framework/functions/returns/index.mdx b/website/docs/plugin/framework/functions/returns/index.mdx index 8a9dd6f19..a81c5bc83 100644 --- a/website/docs/plugin/framework/functions/returns/index.mdx +++ b/website/docs/plugin/framework/functions/returns/index.mdx @@ -1,11 +1,12 @@ --- -page_title: 'Plugin Development - Framework: Function Returns' +page_title: Function return values description: >- - Learn the function return types in the provider development framework. - A return describes the output data in a function definition. + The Terraform plugin framework includes multiple built-in function return + value types and supports dynamic return values. A return describes the output + data in a function definition. --- -# Returns +# Return values A return in a [function definition](/terraform/plugin/framework/functions/implementation#definition-method) describes the result data value from function logic. Every return type has an associated [value type](/terraform/plugin/framework/handling-data/types), although this data handling is simplified for function implementations over other provider concepts, such as resource implementations. diff --git a/website/docs/plugin/framework/functions/returns/int32.mdx b/website/docs/plugin/framework/functions/returns/int32.mdx index ff0e8f57a..b0c4b0c54 100644 --- a/website/docs/plugin/framework/functions/returns/int32.mdx +++ b/website/docs/plugin/framework/functions/returns/int32.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Int32 Function Return' +page_title: Int32 return values description: >- - Learn the int32 function return type in the provider development framework. + Learn how to use the 32-bit integer function return value type with the + Terraform plugin framework. --- -# Int32 Function Return +# Int32 return values diff --git a/website/docs/plugin/framework/functions/returns/int64.mdx b/website/docs/plugin/framework/functions/returns/int64.mdx index 25d06f532..a134eda66 100644 --- a/website/docs/plugin/framework/functions/returns/int64.mdx +++ b/website/docs/plugin/framework/functions/returns/int64.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Int64 Function Return' +page_title: Int64 return values description: >- - Learn the int64 function return type in the provider development framework. + Learn how to use the 64-bit integer function return value type with the + Terraform plugin framework. --- -# Int64 Function Return +# Int64 return values diff --git a/website/docs/plugin/framework/functions/returns/list.mdx b/website/docs/plugin/framework/functions/returns/list.mdx index 1a1e423c3..39cc953c7 100644 --- a/website/docs/plugin/framework/functions/returns/list.mdx +++ b/website/docs/plugin/framework/functions/returns/list.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: List Function Return' +page_title: List return values description: >- - Learn the list function return type in the provider development framework. + Learn how to use the list function return value type with the + Terraform plugin framework. --- -# List Function Return +# List return values List function return expects an ordered collection of single element type value from function logic. Set values in function logic with a Go slice of an appropriate type to match the element type `[]T` or the [framework list type](/terraform/plugin/framework/handling-data/types/list). diff --git a/website/docs/plugin/framework/functions/returns/map.mdx b/website/docs/plugin/framework/functions/returns/map.mdx index 71840f7fb..3ae20085a 100644 --- a/website/docs/plugin/framework/functions/returns/map.mdx +++ b/website/docs/plugin/framework/functions/returns/map.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Map Function Return' +page_title: Map return values description: >- - Learn the map function return type in the provider development framework. + Learn how to use the map function return value type with the + Terraform plugin framework. --- -# Map Function Return +# Map return values Map function return expects a mapping of arbitrary string keys to values of single element type from function logic. Set values in function logic with a Go map of string keys to values of an appropriate type to match the element type `map[string]T` or the [framework map type](/terraform/plugin/framework/handling-data/types/map). diff --git a/website/docs/plugin/framework/functions/returns/number.mdx b/website/docs/plugin/framework/functions/returns/number.mdx index 2d5295109..74e6a2c01 100644 --- a/website/docs/plugin/framework/functions/returns/number.mdx +++ b/website/docs/plugin/framework/functions/returns/number.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Number Function Return' +page_title: Number return values description: >- - Learn the number function return type in the provider development framework. + Learn how to use the arbitrary precision number function return value type + with the Terraform plugin framework. --- -# Number Function Return +# Number return values diff --git a/website/docs/plugin/framework/functions/returns/object.mdx b/website/docs/plugin/framework/functions/returns/object.mdx index 59262f4b2..7f4a354a3 100644 --- a/website/docs/plugin/framework/functions/returns/object.mdx +++ b/website/docs/plugin/framework/functions/returns/object.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Object Function Return' +page_title: Object return values description: >- - Learn the object function return type in the provider development framework. + Learn how to use the object function return value type with the Terraform + plugin framework. --- -# Object Function Return +# Object return values Object function return expects a single structure mapping explicit attribute names to type definitions from function logic. Set values in function logic with a Go structure type annotated with `tfsdk` field tags or the [framework map type](/terraform/plugin/framework/handling-data/types/map). diff --git a/website/docs/plugin/framework/functions/returns/set.mdx b/website/docs/plugin/framework/functions/returns/set.mdx index 622fb44b3..1c32dc777 100644 --- a/website/docs/plugin/framework/functions/returns/set.mdx +++ b/website/docs/plugin/framework/functions/returns/set.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Set Function Return' +page_title: Set return values description: >- - Learn the set function return type in the provider development framework. + Learn how to use the set function return value type with the Terraform + plugin framework. --- -# Set Function Return +# Set return values Set function return expects an unordered, unique collection of single element type value from function logic. Set values in function logic with a Go slice of an appropriate type to match the element type `[]T` or the [framework set type](/terraform/plugin/framework/handling-data/types/set). diff --git a/website/docs/plugin/framework/functions/returns/string.mdx b/website/docs/plugin/framework/functions/returns/string.mdx index 8daf2b2aa..d80f9fa5b 100644 --- a/website/docs/plugin/framework/functions/returns/string.mdx +++ b/website/docs/plugin/framework/functions/returns/string.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: String Function Return' +page_title: String return values description: >- - Learn the string function return type in the provider development framework. + Learn how to use the string function return value type with the Terraform + plugin framework. --- -# String Function Return +# String return values String function return expects a collection of UTF-8 encoded bytes from function logic. Set values in function logic with the Go built-in `string` type, Go built-in `*string` type, or the [framework string type](/terraform/plugin/framework/handling-data/types/string). diff --git a/website/docs/plugin/framework/functions/testing.mdx b/website/docs/plugin/framework/functions/testing.mdx index 43d9b72b9..dad993547 100644 --- a/website/docs/plugin/framework/functions/testing.mdx +++ b/website/docs/plugin/framework/functions/testing.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Testing Functions' +page_title: Testing functions description: >- - How to test provider-defined functions. + Learn how to implement tests for provider-defined functions with the Terraform + plugin framework. --- -# Testing Functions +# Testing functions When a function is [implemented](/terraform/plugin/framework/functions/implementation), ensure the function behaves as expected. Follow [recommendations](#recommendations) to cover how practitioner configurations may call the function. diff --git a/website/docs/plugin/framework/getting-started/code-walkthrough.mdx b/website/docs/plugin/framework/getting-started/code-walkthrough.mdx index f0d02e3c0..8aecf5506 100644 --- a/website/docs/plugin/framework/getting-started/code-walkthrough.mdx +++ b/website/docs/plugin/framework/getting-started/code-walkthrough.mdx @@ -1,10 +1,12 @@ --- -page_title: 'Plugin Development - Framework: Getting Started - Code Walkthrough' +page_title: Provider code walkthrough description: >- - How to setup and configure a simple plugin provider. + The Terraform plugin framework is an SDK that you can use to implement + Terraform providers. Learn how the framework can help you create a provider + by exploring its main components and libraries. --- -# Code Walkthrough +# Provider code walkthrough [Terraform providers](/terraform/language/providers) let Terraform communicate with third parties, such as cloud providers, SaaS providers, and other APIs. Terraform and Terraform providers use gRPC to communicate. Terraform operates as a gRPC client and providers operate as gRPC servers. diff --git a/website/docs/plugin/framework/handling-data/accessing-values.mdx b/website/docs/plugin/framework/handling-data/accessing-values.mdx index a2624da4d..a3d1777f4 100644 --- a/website/docs/plugin/framework/handling-data/accessing-values.mdx +++ b/website/docs/plugin/framework/handling-data/accessing-values.mdx @@ -1,11 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Access State, Config, and Plan' -description: |- - How to read values from state, config, and plan in the Terraform plugin - framework. +page_title: Access state, configuration, and plan data +description: >- + Learn how to read values from Terraform's state, configuration, and plan with + the Terraform plugin framework. --- -# Accessing State, Config, and Plan +# Access state, configuration, and plan data There are various points at which the provider needs access to the data from the practitioner's configuration, Terraform's state, or generated plan. diff --git a/website/docs/plugin/framework/handling-data/attributes/bool.mdx b/website/docs/plugin/framework/handling-data/attributes/bool.mdx index 2d37ffcd1..576baff50 100644 --- a/website/docs/plugin/framework/handling-data/attributes/bool.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/bool.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Bool Attribute' +page_title: Boolean attributes description: >- - Learn the bool attribute type in the provider development framework. + Learn how to use boolean attributes with the Terraform plugin framework. --- -# Bool Attribute + +# Boolean attributes Bool attributes store a boolean true or false value. Values are represented by a [bool type](/terraform/plugin/framework/handling-data/types/bool) in the framework. diff --git a/website/docs/plugin/framework/handling-data/attributes/dynamic.mdx b/website/docs/plugin/framework/handling-data/attributes/dynamic.mdx index 4c95a01d6..44701cc24 100644 --- a/website/docs/plugin/framework/handling-data/attributes/dynamic.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/dynamic.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Dynamic Attribute' +page_title: Dynamic attributes description: >- - Learn the dynamic attribute type in the provider development framework. + Learn how to use dynamic attributes with the Terraform plugin framework. --- -# Dynamic Attribute +# Dynamic attribute diff --git a/website/docs/plugin/framework/handling-data/attributes/float32.mdx b/website/docs/plugin/framework/handling-data/attributes/float32.mdx index be23a0fc0..5f710dafe 100644 --- a/website/docs/plugin/framework/handling-data/attributes/float32.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/float32.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Float32 Attribute' +page_title: Float32 attributes description: >- - Learn the float32 attribute type in the provider development framework. + Learn how to use 32-bit floating point attributes with the Terraform plugin + framework. --- -# Float32 Attribute +# Float32 attributes diff --git a/website/docs/plugin/framework/handling-data/attributes/float64.mdx b/website/docs/plugin/framework/handling-data/attributes/float64.mdx index 9e062a18c..da31351b6 100644 --- a/website/docs/plugin/framework/handling-data/attributes/float64.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/float64.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Float64 Attribute' +page_title: Float64 attributes description: >- - Learn the float64 attribute type in the provider development framework. + Learn how to use 64-bit floating point attributes with the Terraform plugin + framework. --- -# Float64 Attribute +# Float64 attributes diff --git a/website/docs/plugin/framework/handling-data/attributes/index.mdx b/website/docs/plugin/framework/handling-data/attributes/index.mdx index 0424c8588..58397eacb 100644 --- a/website/docs/plugin/framework/handling-data/attributes/index.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/index.mdx @@ -1,8 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Attributes' +page_title: Attributes description: >- - Learn the attribute types in the provider development framework. Attributes - are fields in a resource, data source, or provider schema. + The Terraform plugin framework includes multiple built-in attribute types + and supports custom and dynamic attribute types. Each attribute and block in a + Terraform resource, data source, or provider schema maps to a framework or + custom type. --- # Attributes diff --git a/website/docs/plugin/framework/handling-data/attributes/int32.mdx b/website/docs/plugin/framework/handling-data/attributes/int32.mdx index 0feb915bb..f0c4ad56c 100644 --- a/website/docs/plugin/framework/handling-data/attributes/int32.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/int32.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Int32 Attribute' +page_title: Int32 attributes description: >- - Learn the int32 attribute type in the provider development framework. + Learn how to use 32-bit integer attributes with the Terraform plugin + framework. --- -# Int32 Attribute +# Int32 attributes diff --git a/website/docs/plugin/framework/handling-data/attributes/int64.mdx b/website/docs/plugin/framework/handling-data/attributes/int64.mdx index 7e1e004a8..416976e45 100644 --- a/website/docs/plugin/framework/handling-data/attributes/int64.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/int64.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Int64 Attribute' +page_title: Int64 attributes description: >- - Learn the int64 attribute type in the provider development framework. + Learn how to use 64-bit integer attributes with the Terraform plugin + framework. --- -# Int64 Attribute +# Int64 attributes diff --git a/website/docs/plugin/framework/handling-data/attributes/list-nested.mdx b/website/docs/plugin/framework/handling-data/attributes/list-nested.mdx index f088d5e35..ea0272133 100644 --- a/website/docs/plugin/framework/handling-data/attributes/list-nested.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/list-nested.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: List Nested Attribute' +page_title: List nested attributes description: >- - Learn the list nested attribute type in the provider development framework. + Learn how to use list nested attributes with the Terraform plugin framework. --- -# List Nested Attribute +# List nested attributes List nested attributes store an ordered collection of nested objects. Values are represented by a [list type](/terraform/plugin/framework/handling-data/types/list) in the framework, containing elements of [object type](/terraform/plugin/framework/handling-data/types/object). diff --git a/website/docs/plugin/framework/handling-data/attributes/list.mdx b/website/docs/plugin/framework/handling-data/attributes/list.mdx index 382696c35..2104e2475 100644 --- a/website/docs/plugin/framework/handling-data/attributes/list.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/list.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: List Attribute' +page_title: List attributes description: >- - Learn the list attribute type in the provider development framework. + Learn how to use list attributes with the Terraform plugin framework. --- -# List Attribute +# List attributes List attributes store an ordered collection of single element type. Values are represented by a [list type](/terraform/plugin/framework/handling-data/types/list) in the framework, containing elements of the element type. diff --git a/website/docs/plugin/framework/handling-data/attributes/map-nested.mdx b/website/docs/plugin/framework/handling-data/attributes/map-nested.mdx index 7b2c52d3c..210f25a9d 100644 --- a/website/docs/plugin/framework/handling-data/attributes/map-nested.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/map-nested.mdx @@ -1,7 +1,7 @@ --- -page_title: 'Plugin Development - Framework: Map Nested Attribute' +page_title: Map nested attributes description: >- - Learn the map nested attribute type in the provider development framework. + Learn how to use map nested attributes with the Terraform plugin framework. --- # Map Nested Attribute diff --git a/website/docs/plugin/framework/handling-data/attributes/map.mdx b/website/docs/plugin/framework/handling-data/attributes/map.mdx index 368c4e25b..7eb65aa89 100644 --- a/website/docs/plugin/framework/handling-data/attributes/map.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/map.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Map Attribute' +page_title: Map attributes description: >- - Learn the map attribute type in the provider development framework. + Learn how to use map attributes with the Terraform plugin framework. --- -# Map Attribute +# Map attributes Map attributes store a mapping of arbitrary string keys to values of single element type. Values are represented by a [map type](/terraform/plugin/framework/handling-data/types/map) in the framework, containing elements of the element type. diff --git a/website/docs/plugin/framework/handling-data/attributes/number.mdx b/website/docs/plugin/framework/handling-data/attributes/number.mdx index 1afe11e19..4fb48a1ba 100644 --- a/website/docs/plugin/framework/handling-data/attributes/number.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/number.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Number Attribute' +page_title: Number attributes description: >- - Learn the number attribute type in the provider development framework. + Learn how to use arbitrary precision number attributes with the Terraform + plugin framework. --- -# Number Attribute +# Number attributes diff --git a/website/docs/plugin/framework/handling-data/attributes/object.mdx b/website/docs/plugin/framework/handling-data/attributes/object.mdx index 05be71d36..d7f2c837d 100644 --- a/website/docs/plugin/framework/handling-data/attributes/object.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/object.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Object Attribute' +page_title: Object attributes description: >- - Learn the object attribute type in the provider development framework. + Learn how to use object attributes with the Terraform plugin framework. --- -# Object Attribute +# Object attributes diff --git a/website/docs/plugin/framework/handling-data/attributes/set-nested.mdx b/website/docs/plugin/framework/handling-data/attributes/set-nested.mdx index ca1ce3cce..01ce7e51f 100644 --- a/website/docs/plugin/framework/handling-data/attributes/set-nested.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/set-nested.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Set Nested Attribute' +page_title: Set nested attributes description: >- - Learn the set nested attribute type in the provider development framework. + Learn how to use set nested attributes with the Terraform plugin framework. --- -# Set Nested Attribute +# Set nested attributes Set nested attributes store a unique, unordered collection of nested objects. Values are represented by a [set type](/terraform/plugin/framework/handling-data/types/set) in the framework, containing elements of [object type](/terraform/plugin/framework/handling-data/types/object). diff --git a/website/docs/plugin/framework/handling-data/attributes/set.mdx b/website/docs/plugin/framework/handling-data/attributes/set.mdx index 29724eb3b..512489aad 100644 --- a/website/docs/plugin/framework/handling-data/attributes/set.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/set.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Set Attribute' +page_title: Set attributes description: >- - Learn the set attribute type in the provider development framework. + Learn how to use set attributes with the Terraform plugin framework. --- -# Set Attribute +# Set attributes Set attributes store an unique, unordered collection of single element type. Values are represented by a [set type](/terraform/plugin/framework/handling-data/types/set) in the framework, containing elements of the element type. diff --git a/website/docs/plugin/framework/handling-data/attributes/single-nested.mdx b/website/docs/plugin/framework/handling-data/attributes/single-nested.mdx index 5b76dcaa9..56675912f 100644 --- a/website/docs/plugin/framework/handling-data/attributes/single-nested.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/single-nested.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Single Nested Attribute' +page_title: Single nested attributes description: >- - Learn the single nested attribute type in the provider development framework. + Learn how to use single nested attributes with the Terraform plugin framework. --- -# Single Nested Attribute +# Single nested attributes Single nested attributes are a single structure mapping explicit attribute names to nested attribute definitions. Values are represented by a [object type](/terraform/plugin/framework/handling-data/types/object) in the framework, containing nested attribute values of the mapped attributes. diff --git a/website/docs/plugin/framework/handling-data/attributes/string.mdx b/website/docs/plugin/framework/handling-data/attributes/string.mdx index b3b49f80e..d423109dd 100644 --- a/website/docs/plugin/framework/handling-data/attributes/string.mdx +++ b/website/docs/plugin/framework/handling-data/attributes/string.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: String Attribute' +page_title: String attributes description: >- - Learn the string attribute type in the provider development framework. + Learn how to use string attributes with the Terraform plugin framework. --- -# String Attribute +# String attributes String attributes store a collection of UTF-8 encoded bytes. Values are represented by a [string type](/terraform/plugin/framework/handling-data/types/string) in the framework. diff --git a/website/docs/plugin/framework/handling-data/blocks/index.mdx b/website/docs/plugin/framework/handling-data/blocks/index.mdx index f9b37d1d8..af96c5021 100644 --- a/website/docs/plugin/framework/handling-data/blocks/index.mdx +++ b/website/docs/plugin/framework/handling-data/blocks/index.mdx @@ -1,8 +1,8 @@ --- -page_title: 'Plugin Development - Framework: Blocks' +page_title: Blocks description: >- - Learn the block types in the provider development framework. Blocks - are containers for nested attributes and blocks in a resource, data source, or + Learn how to use block types with the Terraform plugin framework. Blocks are + containers for nested attributes and blocks in a resource, data source, or provider schema. --- diff --git a/website/docs/plugin/framework/handling-data/blocks/list-nested.mdx b/website/docs/plugin/framework/handling-data/blocks/list-nested.mdx index ac98044de..e17c362f4 100644 --- a/website/docs/plugin/framework/handling-data/blocks/list-nested.mdx +++ b/website/docs/plugin/framework/handling-data/blocks/list-nested.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: List Nested Block' +page_title: List nested blocks description: >- - Learn the list nested block type in the provider development framework. + Learn how to implement the list nested block type with the Terraform plugin + framework. --- -# List Nested Block +# List nested blocks diff --git a/website/docs/plugin/framework/handling-data/blocks/set-nested.mdx b/website/docs/plugin/framework/handling-data/blocks/set-nested.mdx index 63d2cd8da..e780d5b5c 100644 --- a/website/docs/plugin/framework/handling-data/blocks/set-nested.mdx +++ b/website/docs/plugin/framework/handling-data/blocks/set-nested.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Set Nested Block' +page_title: Set nested blocks description: >- - Learn the set nested block type in the provider development framework. + Learn to implement the set nested block type with the Terraform plugin framework. --- -# Set Nested Block +# Set nested blocks diff --git a/website/docs/plugin/framework/handling-data/blocks/single-nested.mdx b/website/docs/plugin/framework/handling-data/blocks/single-nested.mdx index f318cf6b6..e078b1103 100644 --- a/website/docs/plugin/framework/handling-data/blocks/single-nested.mdx +++ b/website/docs/plugin/framework/handling-data/blocks/single-nested.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Single Nested Block' +page_title: Single nested blocks description: >- - Learn the single nested block type in the provider development framework. + Learn to implement the single nested block type with the Terraform plugin + framework. --- -# Single Nested Block +# Single nested blocks diff --git a/website/docs/plugin/framework/handling-data/dynamic-data.mdx b/website/docs/plugin/framework/handling-data/dynamic-data.mdx index 0f0ce2064..07f845f41 100644 --- a/website/docs/plugin/framework/handling-data/dynamic-data.mdx +++ b/website/docs/plugin/framework/handling-data/dynamic-data.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Handling Data - Dynamic Data' +page_title: Handling dynamic data description: >- - How to handle data when utilizing dynamic types. + Learn how to handle data when using dynamic types in the Terraform plugin + framework. --- -# Dynamic Data +# Handling dynamic data diff --git a/website/docs/plugin/framework/handling-data/path-expressions.mdx b/website/docs/plugin/framework/handling-data/path-expressions.mdx index 54b066a23..80cca2a1d 100644 --- a/website/docs/plugin/framework/handling-data/path-expressions.mdx +++ b/website/docs/plugin/framework/handling-data/path-expressions.mdx @@ -1,12 +1,13 @@ --- -page_title: 'Plugin Development - Framework: Path Expressions' +page_title: Path expressions description: >- - How to implement path expressions in the provider development framework. + Learn how to implement path expressions in the Terraform plugin framework. Path expressions are logic built on top of paths, which may represent one or more actual paths within schema data. --- -# Path Expressions + +# Path expressions Path expressions are logic built on top of [paths](/terraform/plugin/framework/paths), which may represent one or more actual paths within a schema or schema-based data. Expressions enable providers to work outside the restrictions of absolute paths and steps. diff --git a/website/docs/plugin/framework/handling-data/paths.mdx b/website/docs/plugin/framework/handling-data/paths.mdx index f08cbec1f..1df50cf70 100644 --- a/website/docs/plugin/framework/handling-data/paths.mdx +++ b/website/docs/plugin/framework/handling-data/paths.mdx @@ -1,8 +1,8 @@ --- -page_title: 'Plugin Development - Framework: Paths' +page_title: Paths description: >- - How to implement paths in the provider development framework. - Paths represent a location within a schema or schema-based data. + Learn how to implement paths in the Terraform plugin framework. Paths + represent a location within a schema or schema-based data. --- # Paths diff --git a/website/docs/plugin/framework/handling-data/schemas.mdx b/website/docs/plugin/framework/handling-data/schemas.mdx index 46863ab79..e406565e5 100644 --- a/website/docs/plugin/framework/handling-data/schemas.mdx +++ b/website/docs/plugin/framework/handling-data/schemas.mdx @@ -1,7 +1,7 @@ --- -page_title: 'Plugin Development - Framework: Schemas' +page_title: Schemas description: >- - How to define a schema using the provider development framework. Schemas + Learn how to define a schema using the Terraform plugin framework. Schemas specify the constraints of Terraform configuration blocks. --- diff --git a/website/docs/plugin/framework/handling-data/terraform-concepts.mdx b/website/docs/plugin/framework/handling-data/terraform-concepts.mdx index 5931d62fe..d8602e8a3 100644 --- a/website/docs/plugin/framework/handling-data/terraform-concepts.mdx +++ b/website/docs/plugin/framework/handling-data/terraform-concepts.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Handling Data - Terraform Concepts' +page_title: Terraform data concepts description: >- - Configuration, Schemas, Attributes and Blocks. + Learn how the Terraform plugin framework handles data by mapping Terraform + configuration to schemas, attributes, and blocks. --- -# Terraform Concepts +# Terraform data concepts This page describes Terraform concepts as they relate to handling data within framework-based provider code. The [What is Terraform](/terraform/intro), [Terraform language](/terraform/language), and [Plugin Development](/terraform/plugin) documentation covers more general concepts behind Terraform's workflow, its configuration, and how it interacts with providers. diff --git a/website/docs/plugin/framework/handling-data/types/bool.mdx b/website/docs/plugin/framework/handling-data/types/bool.mdx index 99ce3137f..d771afd10 100644 --- a/website/docs/plugin/framework/handling-data/types/bool.mdx +++ b/website/docs/plugin/framework/handling-data/types/bool.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Bool Type' +page_title: Boolean types description: >- - Learn the bool value type in the provider development framework. + Learn how to implement boolean value types with the Terraform plugin framework. --- -# Bool Type +# Bool types Bool types store a boolean true or false value. diff --git a/website/docs/plugin/framework/handling-data/types/custom.mdx b/website/docs/plugin/framework/handling-data/types/custom.mdx index 9632d9bb5..ad47f3372 100644 --- a/website/docs/plugin/framework/handling-data/types/custom.mdx +++ b/website/docs/plugin/framework/handling-data/types/custom.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Handling Data - Custom Types' +page_title: Custom types description: >- - Custom Types. + Learn how to implement custom types with the Terraform plugin framework. --- -# Custom Types +# Custom types Use existing custom types or develop custom types to consistently define behaviors for a kind of value across schemas. Custom types are supported on top of any framework-defined type. diff --git a/website/docs/plugin/framework/handling-data/types/dynamic.mdx b/website/docs/plugin/framework/handling-data/types/dynamic.mdx index ad26bde6d..cd0194eef 100644 --- a/website/docs/plugin/framework/handling-data/types/dynamic.mdx +++ b/website/docs/plugin/framework/handling-data/types/dynamic.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Dynamic Type' +page_title: Dynamic types description: >- - Learn the dynamic value type in the provider development framework. + Learn how to implement dynamic types with the Terraform plugin framework. --- -# Dynamic Type +# Dynamic types diff --git a/website/docs/plugin/framework/handling-data/types/float32.mdx b/website/docs/plugin/framework/handling-data/types/float32.mdx index 20208798d..bc3bdc8e2 100644 --- a/website/docs/plugin/framework/handling-data/types/float32.mdx +++ b/website/docs/plugin/framework/handling-data/types/float32.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Float32 Type' +page_title: Float32 types description: >- - Learn the float32 value type in the provider development framework. + Learn how to implement 32-bit floating point value types with the Terraform + plugin framework. --- -# Float32 Type +# Float32 types diff --git a/website/docs/plugin/framework/handling-data/types/float64.mdx b/website/docs/plugin/framework/handling-data/types/float64.mdx index 671f5db31..6fc389679 100644 --- a/website/docs/plugin/framework/handling-data/types/float64.mdx +++ b/website/docs/plugin/framework/handling-data/types/float64.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Float64 Type' +page_title: Float64 types description: >- - Learn the float64 value type in the provider development framework. + Learn how to implement 64-bit floating point value types with the Terraform plugin + framework. --- -# Float64 Type +# Float64 types diff --git a/website/docs/plugin/framework/handling-data/types/index.mdx b/website/docs/plugin/framework/handling-data/types/index.mdx index 8f0b3ead7..4e5f9103a 100644 --- a/website/docs/plugin/framework/handling-data/types/index.mdx +++ b/website/docs/plugin/framework/handling-data/types/index.mdx @@ -1,11 +1,12 @@ --- -page_title: 'Plugin Development - Framework: Types' +page_title: Data types description: >- - Learn the types in the provider development framework. Attributes and blocks - in a resource, data source, or provider schema map to specific framework types. + The Terraform plugin framework includes multiple built-in attribute types + and supports custom and dynamic attribute types. You can implement custom + types based off of the built-in attribute types. --- -# Types +# Data types Types are value storage and access mechanism for resource, data source, or provider [schema](/terraform/plugin/framework/handling-data/schemas) data. Every attribute and block has an associated type, which describes the kind of data. These types fully support Terraform's [type system concepts](/terraform/plugin/framework/handling-data/terraform-concepts) that cannot be represented in Go built-in types, such as `*string`. Framework types can be extended by implementing [custom types](/terraform/plugin/framework/handling-data/types/custom) in provider code or shared libraries to provide specific use case functionality. diff --git a/website/docs/plugin/framework/handling-data/types/int32.mdx b/website/docs/plugin/framework/handling-data/types/int32.mdx index 7f3d9e0f3..4cc69ca3f 100644 --- a/website/docs/plugin/framework/handling-data/types/int32.mdx +++ b/website/docs/plugin/framework/handling-data/types/int32.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Int32 Type' +page_title: Int32 types description: >- - Learn the int32 value type in the provider development framework. + Learn how to implement 32-bit integer value types with the Terraform plugin + framework. --- -# Int32 Type +# Int32 types diff --git a/website/docs/plugin/framework/handling-data/types/int64.mdx b/website/docs/plugin/framework/handling-data/types/int64.mdx index 00b7ebabc..5d4f99da8 100644 --- a/website/docs/plugin/framework/handling-data/types/int64.mdx +++ b/website/docs/plugin/framework/handling-data/types/int64.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Int64 Type' +page_title: Int64 types description: >- - Learn the int64 value type in the provider development framework. + Learn how to implement 64-bit integer value types with the Terraform plugin + framework. --- -# Int64 Type +# Int64 types diff --git a/website/docs/plugin/framework/handling-data/types/list.mdx b/website/docs/plugin/framework/handling-data/types/list.mdx index 4e53a5661..252f1df5e 100644 --- a/website/docs/plugin/framework/handling-data/types/list.mdx +++ b/website/docs/plugin/framework/handling-data/types/list.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: List Type' +page_title: List types description: >- - Learn the list value type in the provider development framework. + Learn how to implement list value types with the Terraform pluginprovider + framework. --- -# List Type +# List types List types store an ordered collection of single element type. diff --git a/website/docs/plugin/framework/handling-data/types/map.mdx b/website/docs/plugin/framework/handling-data/types/map.mdx index 83b618f64..b6be68b9d 100644 --- a/website/docs/plugin/framework/handling-data/types/map.mdx +++ b/website/docs/plugin/framework/handling-data/types/map.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Map Type' +page_title: Map types description: >- - Learn the map value type in the provider development framework. + Learn how to implement mapping value types with the Terraform plugin + framework. --- -# Map Type +# Map type Map types store an ordered collection of single element type. diff --git a/website/docs/plugin/framework/handling-data/types/number.mdx b/website/docs/plugin/framework/handling-data/types/number.mdx index eccf72643..99c7315db 100644 --- a/website/docs/plugin/framework/handling-data/types/number.mdx +++ b/website/docs/plugin/framework/handling-data/types/number.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Number Type' +page_title: Number types description: >- - Learn the float64 value type in the provider development framework. + Learn how to implement arbitrary precision number value types with the Terraform plugin + framework. --- -# Number Type +# Number types diff --git a/website/docs/plugin/framework/handling-data/types/object.mdx b/website/docs/plugin/framework/handling-data/types/object.mdx index 2c6cdad7c..b6ae89545 100644 --- a/website/docs/plugin/framework/handling-data/types/object.mdx +++ b/website/docs/plugin/framework/handling-data/types/object.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Object Type' +page_title: Object types description: >- - Learn the object value type in the provider development framework. + Learn how to implement object value types with the Terraform plugin framework. --- -# Object Type +# Object types Object types store a mapping of explicit attribute names to value types. Objects must declare all attribute values, even when null or unknown, unless the entire object is null or unknown. diff --git a/website/docs/plugin/framework/handling-data/types/set.mdx b/website/docs/plugin/framework/handling-data/types/set.mdx index 51eef5ee6..73e0576cb 100644 --- a/website/docs/plugin/framework/handling-data/types/set.mdx +++ b/website/docs/plugin/framework/handling-data/types/set.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Set Type' +page_title: Set types description: >- - Learn the set value type in the provider development framework. + Learn how to implement set value types with the Terraform plugin framework. --- -# Set Type +# Set types Set types store an ordered collection of single element type. diff --git a/website/docs/plugin/framework/handling-data/types/string.mdx b/website/docs/plugin/framework/handling-data/types/string.mdx index d788dbb76..c4644153d 100644 --- a/website/docs/plugin/framework/handling-data/types/string.mdx +++ b/website/docs/plugin/framework/handling-data/types/string.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: String Type' +page_title: String types description: >- - Learn the string value type in the provider development framework. + Learn how to implement string value types with the Terraform plugin framework. --- -# String Type +# String types String types store a collection of UTF-8 encoded bytes. diff --git a/website/docs/plugin/framework/handling-data/types/tuple.mdx b/website/docs/plugin/framework/handling-data/types/tuple.mdx index 079d879cb..1276559a9 100644 --- a/website/docs/plugin/framework/handling-data/types/tuple.mdx +++ b/website/docs/plugin/framework/handling-data/types/tuple.mdx @@ -1,17 +1,17 @@ --- -page_title: 'Plugin Development - Framework: Tuple Type' +page_title: Tuple types description: >- - Learn the tuple value type in the provider development framework. + Learn how to implement tuple value types with the Terraform plugin framework. --- +# Tuple types + The tuple type doesn't have associated schema attributes as it has limited real world application. Provider developers will only encounter tuples when handling provider-defined function variadic parameters or dynamic values. -# Tuple Type - Tuple types store an ordered collection of elements where each element has it's own type. Values must have **exactly** the same number of elements (no more and no fewer), and the value in each position must match the specified type for that position. The tuple type is used to express Terraform's [tuple type constraint](/terraform/language/expressions/type-constraints#tuple). diff --git a/website/docs/plugin/framework/handling-data/writing-state.mdx b/website/docs/plugin/framework/handling-data/writing-state.mdx index 6636fbcb5..200ef6501 100644 --- a/website/docs/plugin/framework/handling-data/writing-state.mdx +++ b/website/docs/plugin/framework/handling-data/writing-state.mdx @@ -1,11 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Writing State' +page_title: Writing state description: >- - How to write and update the Terraform statefile using the provider development - framework. + Learn how to write and update the Terraform statefile with the Terraform + plugin framework. --- -# Writing State +# Writing state One of the primary jobs of a Terraform provider is to manage the provider's resources and data sources in the [Terraform state](/terraform/language/state). Writing values to state diff --git a/website/docs/plugin/framework/index.mdx b/website/docs/plugin/framework/index.mdx index 1c07c50ce..59379ac0c 100644 --- a/website/docs/plugin/framework/index.mdx +++ b/website/docs/plugin/framework/index.mdx @@ -1,10 +1,11 @@ --- -page_title: "Home - Plugin Development: Framework" -description: |- - Develop Terraform providers using the recommended plugin framework. +page_title: Terraform plugin framework +description: >- + The Terraform plugin framework is an SDK that you can use to develop Terraform + providers. Learn how the plugin framework works with Terraform core. --- -# Terraform Plugin Framework +# Terraform plugin framework The plugin framework is HashiCorp’s recommended way develop Terraform Plugins on [protocol version 6](/terraform/plugin/terraform-plugin-protocol#protocol-version-6) or [protocol version 5](/terraform/plugin/terraform-plugin-protocol#protocol-version-5). diff --git a/website/docs/plugin/framework/internals/index.mdx b/website/docs/plugin/framework/internals/index.mdx index 64987052c..3212e2b71 100644 --- a/website/docs/plugin/framework/internals/index.mdx +++ b/website/docs/plugin/framework/internals/index.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Internals' +page_title: Framework internals description: >- - Framewwork internals. + The Terraform plugin framework is a set of libraries implemented in Go. + Learn about the internal implementation details of the framework. --- -# Internals +# Framework internals The following information describes some internals of the Terraform Plugin Framework in order to provide a more in-depth view of specific aspects of Framework behaviour. diff --git a/website/docs/plugin/framework/internals/rpcs.mdx b/website/docs/plugin/framework/internals/rpcs.mdx index d09efe41a..4e12a18fe 100644 --- a/website/docs/plugin/framework/internals/rpcs.mdx +++ b/website/docs/plugin/framework/internals/rpcs.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: RPCs' +page_title: Framework RPCs description: >- - Relationship between RPCs and framework functionality. + Learn how Terraform uses RPCs to support provider functionality. --- -# RPCs and Framework Functionality +# RPCs and framework functionality The correlation between the Terraform command, the RPCs that are issued and the Terraform plugin framework methods that are called is as follows: diff --git a/website/docs/plugin/framework/migrating/attributes-blocks/attribute-schema.mdx b/website/docs/plugin/framework/migrating/attributes-blocks/attribute-schema.mdx index 745896a3e..4042f31d2 100644 --- a/website/docs/plugin/framework/migrating/attributes-blocks/attribute-schema.mdx +++ b/website/docs/plugin/framework/migrating/attributes-blocks/attribute-schema.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Attribute Schema: Migrating from SDKv2 to the Framework' +page_title: Migrating attribute schema description: >- - Migrate attributes from SDKv2 to the plugin Framework + Learn how to iteratively migrate from the SDKv2 to the plugin framework using + the terraform-plugin-mux Go library. --- -# Attribute Schema +# Migrating attribute schema Attributes define how users can configure values for your Terraform provider, resources, and data sources. Refer to [Schemas - Attributes](/terraform/plugin/framework/handling-data/schemas#attributes) in the Framework documentation for details. diff --git a/website/docs/plugin/framework/migrating/attributes-blocks/blocks-computed.mdx b/website/docs/plugin/framework/migrating/attributes-blocks/blocks-computed.mdx index bcbc2de25..1f4ee4bcc 100644 --- a/website/docs/plugin/framework/migrating/attributes-blocks/blocks-computed.mdx +++ b/website/docs/plugin/framework/migrating/attributes-blocks/blocks-computed.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Computed Blocks: Migrating from SDKv2 to the Framework' +page_title: Migrating computed blocks description: >- - Migrate blocks with computed fields from SDKv2 to attribute validators in the plugin Framework. + Learn how to igrate blocks with computed fields from SDKv2 to attribute + validators in the plugin framework. --- -# Blocks with Computed Fields +# Migrating blocks with computed fields Some providers, resources, and data sources include repeatable nested blocks in their attributes. Some blocks contain fields with `Computed: true`, which means that the provider code can define the value or that it could come from the diff --git a/website/docs/plugin/framework/migrating/attributes-blocks/blocks.mdx b/website/docs/plugin/framework/migrating/attributes-blocks/blocks.mdx index 1691d9cec..353029dee 100644 --- a/website/docs/plugin/framework/migrating/attributes-blocks/blocks.mdx +++ b/website/docs/plugin/framework/migrating/attributes-blocks/blocks.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Blocks: Migrating from SDKv2 to the Framework' +page_title: Migrating blocks description: >- - Migrate blocks from SDKv2 to attribute validators in the plugin Framework. + Learn how to migrate blocks from SDKv2 to attribute validators in the plugin + framework. --- -# Blocks +# Migrating blocks Some providers, resources, and data sources include repeatable nested blocks in their attributes. These nested blocks typically represent separate objects that are related to (or embedded within) the containing object. diff --git a/website/docs/plugin/framework/migrating/attributes-blocks/default-values.mdx b/website/docs/plugin/framework/migrating/attributes-blocks/default-values.mdx index 40538fd0f..f358d8d62 100644 --- a/website/docs/plugin/framework/migrating/attributes-blocks/default-values.mdx +++ b/website/docs/plugin/framework/migrating/attributes-blocks/default-values.mdx @@ -1,11 +1,11 @@ --- -page_title: 'Attribute default values: Migrating from SDKv2 to the Framework' +page_title: Migrating attribute default values description: >- - Specify a default when the Terraform configuration does not supply a value for resource attributes. - Migrate attribute defaults in SDKv2 to AttributePlanModifier in the Framework. + Learn how to migrate attribute default values from SDKv2 by using an + attribute plan modifier in the plugin framework. --- -# Default Values +# Migrating attribute default values Default values support is only available in the Framework for resources. Handle default values for data source attributes within the [data source `Read` method](/terraform/plugin/framework/data-sources#read-method) and default values for provider attributes within the [provider `Configure` method](/terraform/plugin/framework/providers#configure-method). diff --git a/website/docs/plugin/framework/migrating/attributes-blocks/fields.mdx b/website/docs/plugin/framework/migrating/attributes-blocks/fields.mdx index 8a594ca86..6efe29b7a 100644 --- a/website/docs/plugin/framework/migrating/attributes-blocks/fields.mdx +++ b/website/docs/plugin/framework/migrating/attributes-blocks/fields.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Attribute Fields: Migrating from SDKv2 to the Framework' +page_title: Migrating attribute fields description: >- - Migrate attribute required, optional, computed, and sensitive fields from SDKv2 to the plugin Framework + Learn how to migrate attribute required, optional, computed, and sensitive + fields from SDKv2 to the plugin framework. --- -# Attribute Fields +# Migrating attribute fields A subset of attribute fields, such as required, optional, computed, or sensitive, define attribute behavior as boolean flags. Refer to [Schemas - Attributes](/terraform/plugin/framework/handling-data/schemas#required) in the Framework documentation for details. diff --git a/website/docs/plugin/framework/migrating/attributes-blocks/force-new.mdx b/website/docs/plugin/framework/migrating/attributes-blocks/force-new.mdx index a5992eda6..1a119eff6 100644 --- a/website/docs/plugin/framework/migrating/attributes-blocks/force-new.mdx +++ b/website/docs/plugin/framework/migrating/attributes-blocks/force-new.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Attribute ForceNew triggers: Migrating from SDKv2 to the Framework' +page_title: Migrating attribute ForceNew triggers description: >- - Migrate attribute force new in SDKv2 to an attribute plan modifier in the Framework. + Learn how to migrate attribute ForceNew triggers in SDKv2 to attribute plan + modifiers in the framework. --- -# ForceNew +# Migrating attribute ForceNew triggers In Terraform, sometimes a resource must be replaced when the value of an attribute changes. In SDKv2, this is accomplished via the `ForceNew` field. In the Framework, you implement the same behavior via a `RequiresReplace` plan diff --git a/website/docs/plugin/framework/migrating/attributes-blocks/types.mdx b/website/docs/plugin/framework/migrating/attributes-blocks/types.mdx index cab4437a1..86d633fa7 100644 --- a/website/docs/plugin/framework/migrating/attributes-blocks/types.mdx +++ b/website/docs/plugin/framework/migrating/attributes-blocks/types.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Attribute Types: Migrating from SDKv2 to the Framework' +page_title: Migrating atrribute types description: >- - Migrate attribute type from SDKv2 to the plugin Framework + Learn how to migrate attribute type from SDKv2 to the plugin Framework. --- -# Attribute Types +# Migrating attribute types An attribute either contains a primitive type, such as an integer or a string, or contains other attributes. Attributes that contain other attributes are referred to as nested attributes. Refer to diff --git a/website/docs/plugin/framework/migrating/attributes-blocks/validators-custom.mdx b/website/docs/plugin/framework/migrating/attributes-blocks/validators-custom.mdx index 25082e857..8c33f4c01 100644 --- a/website/docs/plugin/framework/migrating/attributes-blocks/validators-custom.mdx +++ b/website/docs/plugin/framework/migrating/attributes-blocks/validators-custom.mdx @@ -1,10 +1,12 @@ --- -page_title: 'Attribute Custom Validators: Migrating from SDKv2 to the Framework' +page_title: Migrating attribute custom validators description: >- - Validations check for required syntax, types, and acceptable values. Migrate custom attribute validation functions from SDKv2 to attribute validators in the Framework. + Learn how to migrate custom attribute validation functions from SDKv2 to + attribute validators in the Framework. Providers use custom validators to + check attribute values for required syntax, types, and acceptable values. --- -# Custom Validators +# Migrating attribute custom validators You can write custom validations that give users feedback about required syntax, types, and acceptable values in your provider. The Framework has a collection of diff --git a/website/docs/plugin/framework/migrating/attributes-blocks/validators-predefined.mdx b/website/docs/plugin/framework/migrating/attributes-blocks/validators-predefined.mdx index 3f630ba03..33c32dfd4 100644 --- a/website/docs/plugin/framework/migrating/attributes-blocks/validators-predefined.mdx +++ b/website/docs/plugin/framework/migrating/attributes-blocks/validators-predefined.mdx @@ -1,11 +1,13 @@ --- -page_title: 'Attribute predefined validators: Migrating from SDKv2 to the Framework' +page_title: Migrating attribute predefined validators description: >- - Validations check required syntax, types, and acceptable values. - Migrate the predefined ConflictsWith, ExactlyOneOf, AtLeastOneOf and RequiredWith validators to the Framework. + Learn how to migrate the predefined ConflictsWith, ExactlyOneOf, AtLeastOneOf + and RequiredWith validators from SDKv2 to the framework. Providers use + predefined validators to check attribute values for required syntax, types, + and acceptable values. --- -# Validators - Predefined +# Migrating predefined attribute validators Attribute validators ensure that attributes do or do not contain specific values. You can use predefined validators for many use cases, or implement custom validators. Refer to [Schemas - Validators](/terraform/plugin/framework/handling-data/schemas#validators) in diff --git a/website/docs/plugin/framework/migrating/benefits.mdx b/website/docs/plugin/framework/migrating/benefits.mdx index 42b8e392d..847b2c73f 100644 --- a/website/docs/plugin/framework/migrating/benefits.mdx +++ b/website/docs/plugin/framework/migrating/benefits.mdx @@ -1,10 +1,12 @@ --- -page_title: 'Plugin Development - Framework: Migration Benefits' +page_title: Benefits of migration description: >- - The plugin framework offers significant advantages in comparison to the prior SDK. + The plugin framework is an updated SDK for Terraform providers that includes + improved data access, more consistent schema models, and other improvements + over the previous SDKv2. --- -# Framework and SDKv2 Feature Comparison +# Benefits of migrating to the plugin framework We recommend using the plugin framework to develop your provider because it offers significant benefits in comparison to SDKv2. We designed the framework with feedback from thousands of existing providers, so the framework significantly improves upon the functionality available in SDKv2. diff --git a/website/docs/plugin/framework/migrating/data-sources/index.mdx b/website/docs/plugin/framework/migrating/data-sources/index.mdx index 91984bd70..eaa78e446 100644 --- a/website/docs/plugin/framework/migrating/data-sources/index.mdx +++ b/website/docs/plugin/framework/migrating/data-sources/index.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Data Sources: Migrating from SDKv2 to the Framework' +page_title: Migrating data sources description: >- - Migrate a data source from SDKv2 to the plugin Framework. + Learn how to migrate a data source from SDKv2 to the plugin framework. --- -# Data Sources +# Migrating data sources Data sources let Terraform reference external data. Unlike resources, Terraform does not create, update, or delete data sources, and makes no attempt to modify the underlying API. Data Sources are a read-only resource type, so they diff --git a/website/docs/plugin/framework/migrating/data-sources/timeouts.mdx b/website/docs/plugin/framework/migrating/data-sources/timeouts.mdx index 4d1200ebf..7b0105316 100644 --- a/website/docs/plugin/framework/migrating/data-sources/timeouts.mdx +++ b/website/docs/plugin/framework/migrating/data-sources/timeouts.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Timeouts' +page_title: Migrating timeouts description: >- - How to migrate timeouts from SDKv2 to the Framework. + Learn how to migrate timeouts from SDKv2 to the framework. --- -# Timeouts +# Migrating timeouts The Framework can be used in conjunction with the [terraform-plugin-framework-timeouts](https://github.com/hashicorp/terraform-plugin-framework-timeouts) module in order to allow defining timeouts in configuration and have them be available in `Read` functions. diff --git a/website/docs/plugin/framework/migrating/index.mdx b/website/docs/plugin/framework/migrating/index.mdx index 410db0ac9..f13455039 100644 --- a/website/docs/plugin/framework/migrating/index.mdx +++ b/website/docs/plugin/framework/migrating/index.mdx @@ -1,7 +1,7 @@ --- -page_title: 'Plugin Development: Migrating from SDKv2 to the plugin Framework' +page_title: Migrating from SDKv2 to the plugin framework description: >- - Migrate your provider from SDKv2 to the plugin Framework. + Learn how to migrate your provider from SDKv2 to the plugin framework. --- # Overview diff --git a/website/docs/plugin/framework/migrating/mux.mdx b/website/docs/plugin/framework/migrating/mux.mdx index 51cb55989..e0e57c4b7 100644 --- a/website/docs/plugin/framework/migrating/mux.mdx +++ b/website/docs/plugin/framework/migrating/mux.mdx @@ -1,7 +1,8 @@ --- -page_title: 'Plugin Development - Framework: Migration Using Mux' +page_title: Migration using muxing description: >- - Iteratively migrate from terraform-plugin-sdk to terraform-plugin-framework using terraform-plugin-mux. + Learn how to iteratively migrate from the SDKv2 to the plugin framework using + the terraform-plugin-mux Go library. --- # Muxing diff --git a/website/docs/plugin/framework/migrating/providers/index.mdx b/website/docs/plugin/framework/migrating/providers/index.mdx index 87142add9..6bc14ba9a 100644 --- a/website/docs/plugin/framework/migrating/providers/index.mdx +++ b/website/docs/plugin/framework/migrating/providers/index.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Provider: Migrating from SDKv2 to the Framework' +page_title: Migrating providers from SDKv2 to the framework description: >- - Migrate a provider definition and schema from SDKv2 to the plugin Framework. + Learn how to migrate a provider definition and schema from SDKv2 to the plugin + framework. --- -# Provider +# Migrating providers Providers are Terraform plugins that define resources and data sources for practitioners to use. You serve your providers with a provider server so they can interact with Terraform. diff --git a/website/docs/plugin/framework/migrating/resources/crud.mdx b/website/docs/plugin/framework/migrating/resources/crud.mdx index 80c875baa..645c0aae3 100644 --- a/website/docs/plugin/framework/migrating/resources/crud.mdx +++ b/website/docs/plugin/framework/migrating/resources/crud.mdx @@ -1,7 +1,8 @@ --- -page_title: 'Resources - CRUD Functions: Migrating from SDKv2 to the Framework' +page_title: CRUD functions description: >- - Migrate resource create, read, update, and delete (CRUD) functions from SDKv2 to the plugin Framework. + Learn how to migrate resource create, read, update, and delete (CRUD) + functions from SDKv2 to the plugin framework. --- # CRUD functions diff --git a/website/docs/plugin/framework/migrating/resources/import.mdx b/website/docs/plugin/framework/migrating/resources/import.mdx index f0af77b2a..c7ebb97aa 100644 --- a/website/docs/plugin/framework/migrating/resources/import.mdx +++ b/website/docs/plugin/framework/migrating/resources/import.mdx @@ -1,11 +1,12 @@ --- -page_title: 'Resources - Import: Migrating from SDKv2 to the Framework' +page_title: Resource import description: >- - Practitioners use the import command to let Terraform manage existing infrastructure resources. - Migrate import functions from SDKv2 to the plugin Framework. + Learn how to migrate resource import functions from SDKv2 to the plugin + framework. Practitioners import resources to bring them under the control of + their Terraform projects. --- -# Import +# Resource import Practitioners can use the [`terraform import` command](/terraform/cli/commands/import) to let Terraform begin managing existing infrastructure by importing an existing resource into their Terraform project's state. A diff --git a/website/docs/plugin/framework/migrating/resources/index.mdx b/website/docs/plugin/framework/migrating/resources/index.mdx index 1340191c4..73d383a3a 100644 --- a/website/docs/plugin/framework/migrating/resources/index.mdx +++ b/website/docs/plugin/framework/migrating/resources/index.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Resources: Migrating from SDKv2 to the Framework' +page_title: Migrating resources description: >- - Migrate a resource from SDKv2 to the plugin Framework. + Learn how to migrate resources from SDKv2 to the plugin framework. --- -# Resources +# Migrating resources Resources are an abstraction that allow Terraform to manage infrastructure objects by defining create, read, update, and delete functionality that maps onto API operations. Resource schemas define what fields a resource has, give diff --git a/website/docs/plugin/framework/migrating/resources/plan-modification.mdx b/website/docs/plugin/framework/migrating/resources/plan-modification.mdx index c8f6c9b7e..af8241279 100644 --- a/website/docs/plugin/framework/migrating/resources/plan-modification.mdx +++ b/website/docs/plugin/framework/migrating/resources/plan-modification.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Resources - CustomizeDiff and PlanModifiers: Migrating from SDKv2 to the Framework' +page_title: Plan modification description: >- - Migrate resource customizediff functions in SDKv2 to plan modifiers in the plugin Framework. + Learn how to migrate resource CustomizeDiff functions in SDKv2 to + plan modifiers in the Terraform plugin framework. --- -# Plan Modification +# Plan modification Your provider can modify the Terraform plan to match the expected end state. This can include replacing unknown values with expected known values or marking a resource that must be replaced. Refer to diff --git a/website/docs/plugin/framework/migrating/resources/state-upgrade.mdx b/website/docs/plugin/framework/migrating/resources/state-upgrade.mdx index e643b8e1e..7b5c05b33 100644 --- a/website/docs/plugin/framework/migrating/resources/state-upgrade.mdx +++ b/website/docs/plugin/framework/migrating/resources/state-upgrade.mdx @@ -1,11 +1,12 @@ --- -page_title: 'Resources - State Upgrading: Migrating from SDKv2 to the Framework' +page_title: State upgrading description: >- - State upgraders let users update resources provisioned with old schema configurations. - Migrate resource StateUpgraders in SDKv2 to UpgradeState in the plugin Framework. + Learn how to Migrate resource StateUpgraders in SDKv2 to UpgradeState in the + plugin framework. State upgraders let users update resources provisioned with + old schema configurations. --- -# State Upgraders +# State upgraders When you update a resource's implementation in your provider, some changes may not be compatible with old versions. You can create state upgraders to automatically migrate resources provisioned with old schema configurations. Refer to diff --git a/website/docs/plugin/framework/migrating/resources/timeouts.mdx b/website/docs/plugin/framework/migrating/resources/timeouts.mdx index 78483d34b..a7a8d76c2 100644 --- a/website/docs/plugin/framework/migrating/resources/timeouts.mdx +++ b/website/docs/plugin/framework/migrating/resources/timeouts.mdx @@ -1,7 +1,7 @@ --- -page_title: 'Plugin Development - Framework: Timeouts' +page_title: Timeouts description: >- - How to migrate timeouts from SDKv2 to the Framework. + Learn how to migrate timeouts from SDKv2 to the framework. --- # Timeouts diff --git a/website/docs/plugin/framework/migrating/schema/index.mdx b/website/docs/plugin/framework/migrating/schema/index.mdx index aa8ffdbab..5afd215f2 100644 --- a/website/docs/plugin/framework/migrating/schema/index.mdx +++ b/website/docs/plugin/framework/migrating/schema/index.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Schema: Migrating from SDKv2 to the Framework' +page_title: Migrating schema description: >- - Migrate a schema from SDKv2 to the plugin Framework. + Learn how to migrate schema from SDKv2 to the plugin framework. --- -# Schema +# Migrating schema Providers, resources, and data sources all use schema to define their attributes and behavior. Schemas specify the constraints of Terraform configuration blocks and how the provider, resource, or data source behaves. Refer to diff --git a/website/docs/plugin/framework/migrating/testing.mdx b/website/docs/plugin/framework/migrating/testing.mdx index 843772c6f..79eb6ea74 100644 --- a/website/docs/plugin/framework/migrating/testing.mdx +++ b/website/docs/plugin/framework/migrating/testing.mdx @@ -1,7 +1,8 @@ --- -page_title: 'Testing Migration: Migrating from SDKv2 to the Framework' +page_title: Testing migration description: >- - Write tests that verify that switching from SDKv2 to the Framework does not affect provider behavior. + Learn how to write tests that verify that migrating from SDKv2 to the + Framework does not affect provider behavior. --- # Testing diff --git a/website/docs/plugin/framework/provider-servers.mdx b/website/docs/plugin/framework/provider-servers.mdx index f00b650bf..a8d07bd5e 100644 --- a/website/docs/plugin/framework/provider-servers.mdx +++ b/website/docs/plugin/framework/provider-servers.mdx @@ -1,11 +1,12 @@ --- -page_title: 'Plugin Development - Framework: Provider Servers' +page_title: Provider servers description: >- - How to implement a provider server in the provider development framework. - Provider servers are plugins that allow Terraform to interact with APIs. + Learn how to implement a provider server in the Terraform plugin + framework. Provider servers are plugins that allow Terraform to interact with + APIs. --- -# Provider Servers +# Provider servers Before a [provider](/terraform/plugin/framework/providers) can be used with Terraform, it must implement a [gRPC server](https://grpc.io) that supports Terraform-specific connection and handshake handling on startup. The server must then implement the [Terraform Plugin Protocol](/terraform/plugin/how-terraform-works#terraform-plugin-protocol). diff --git a/website/docs/plugin/framework/providers/index.mdx b/website/docs/plugin/framework/providers/index.mdx index 915cfc49f..131047f55 100644 --- a/website/docs/plugin/framework/providers/index.mdx +++ b/website/docs/plugin/framework/providers/index.mdx @@ -1,9 +1,9 @@ --- -page_title: 'Plugin Development - Framework: Providers' +page_title: Providers description: >- - How to implement a provider in the provider development framework. Providers, - wrapped by a provider server, are plugins that allow Terraform to interact - with APIs. + Learn how to implement a provider in the Terraform plugin framework. + Providers, wrapped by a provider server, are plugins that allow Terraform to + interact with APIs. --- # Providers diff --git a/website/docs/plugin/framework/providers/validate-configuration.mdx b/website/docs/plugin/framework/providers/validate-configuration.mdx index de1f2133b..f59330f1c 100644 --- a/website/docs/plugin/framework/providers/validate-configuration.mdx +++ b/website/docs/plugin/framework/providers/validate-configuration.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Validate Provider Configurations' +page_title: Validate provider configuration description: >- - How to validate provider configurations with the provider development framework. + Learn how to validate provider configurations with the Terraform plugin + framework. --- -# Validate Configuration +# Validate provider configuration [Providers](/terraform/plugin/framework/providers) support validating an entire practitioner configuration in either declarative or imperative logic. Feedback, such as required syntax or acceptable combinations of values, is returned via [diagnostics](/terraform/plugin/framework/diagnostics). diff --git a/website/docs/plugin/framework/resources/configure.mdx b/website/docs/plugin/framework/resources/configure.mdx index b828bea02..93dced950 100644 --- a/website/docs/plugin/framework/resources/configure.mdx +++ b/website/docs/plugin/framework/resources/configure.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Configure Resources' +page_title: Configure resources description: >- - How to configure resources with provider data or clients in the provider development framework. + Learn how to implement resource configuration with provider or client data in + the Terraform plugin framework. --- -# Configure Resources +# Configure resources [Resources](/terraform/plugin/framework/resources) may require provider-level data or remote system clients to operate correctly. The framework supports the ability to configure this data and/or clients once within the provider, then pass that information to resources by adding the `Configure` method. diff --git a/website/docs/plugin/framework/resources/create.mdx b/website/docs/plugin/framework/resources/create.mdx index 0c41468e2..db9ec0914 100644 --- a/website/docs/plugin/framework/resources/create.mdx +++ b/website/docs/plugin/framework/resources/create.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Create Resources' +page_title: Create resources description: >- - How to implement resource creation in the provider development framework. + Learn how to implement resource creation in the Terraform plugin framework. --- -# Create Resources +# Create resources Creation is part of the basic Terraform lifecycle for managing resources. During the [`terraform apply` command](/terraform/cli/commands/apply), Terraform calls the provider [`ApplyResourceChange`](/terraform/plugin/framework/internals/rpcs#applyresourcechange-rpc) RPC, in which the framework calls the [`resource.Resource` interface `Create` method](https://pkg.go.dev/github.com/hashicorp/terraform-plugin-framework/resource#Resource.Create). The request contains Terraform configuration and plan data. The response expects the applied Terraform state data, including any computed values. The data is defined by the [schema](/terraform/plugin/framework/data-handling/schemas) of the resource. diff --git a/website/docs/plugin/framework/resources/default.mdx b/website/docs/plugin/framework/resources/default.mdx index 2787a5e8b..5254d5c5b 100644 --- a/website/docs/plugin/framework/resources/default.mdx +++ b/website/docs/plugin/framework/resources/default.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Default' +page_title: Default values description: >- - How to set default values using the provider development framework. + Learn how to set default values for resource attributes with the Terraform + plugin framework. --- -# Default +# Default values After [validation](/terraform/plugin/framework/validation) and before applying configuration changes, Terraform generates a plan that describes the expected values and behaviors of those changes. Resources can then tailor the plan to set default values on computed resource attributes that are null in the configuration. diff --git a/website/docs/plugin/framework/resources/delete.mdx b/website/docs/plugin/framework/resources/delete.mdx index d65986cdb..37c706e7f 100644 --- a/website/docs/plugin/framework/resources/delete.mdx +++ b/website/docs/plugin/framework/resources/delete.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Delete Resources' +page_title: Delete resources description: >- - How to implement resource deletion in the provider development framework. + Learn how to implement resource deletion in the Terraform plugin framework. --- -# Delete Resources +# Delete resources Deletion is part of the basic Terraform lifecycle for managing resources. During the [`terraform apply` command](/terraform/cli/commands/apply), Terraform calls the provider [`ApplyResourceChange`](/terraform/plugin/framework/internals/rpcs#applyresourcechange-rpc) RPC, in which the framework calls the [`resource.Resource` interface `Delete` method](https://pkg.go.dev/github.com/hashicorp/terraform-plugin-framework/resource#Resource.Delete). The request contains Terraform prior state data. The response is only for returning diagnostics. The data is defined by the [schema](/terraform/plugin/framework/schemas) of the resource. diff --git a/website/docs/plugin/framework/resources/import.mdx b/website/docs/plugin/framework/resources/import.mdx index c0e719d2d..f8202686d 100644 --- a/website/docs/plugin/framework/resources/import.mdx +++ b/website/docs/plugin/framework/resources/import.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Resource Import' +page_title: Resource import description: >- - How to support resource import using the provider development framework. + Learn how to support resource import using the Terraform plugin framework. --- -# Resource Import +# Resource import Practitioners can use the [`terraform import` command](/terraform/cli/commands/import) to let Terraform begin managing existing infrastructure resources. Resources can implement the `ImportState` method, which must either specify enough Terraform state for the `Read` method to refresh [`resource.Resource`](https://pkg.go.dev/github.com/hashicorp/terraform-plugin-framework/resource#Resource) or return an error. diff --git a/website/docs/plugin/framework/resources/index.mdx b/website/docs/plugin/framework/resources/index.mdx index c7f0691b8..61d8b5798 100644 --- a/website/docs/plugin/framework/resources/index.mdx +++ b/website/docs/plugin/framework/resources/index.mdx @@ -1,8 +1,8 @@ --- -page_title: 'Plugin Development - Framework: Resources' +page_title: Resources description: >- - How to build resources in the provider development framework. Resources allow - Terraform to manage infrastructure objects. + Learn how to build resources in the Terraform plugin framework. Resources + allow Terraform to manage infrastructure objects. --- # Resources diff --git a/website/docs/plugin/framework/resources/plan-modification.mdx b/website/docs/plugin/framework/resources/plan-modification.mdx index 7da986333..bcab40d8d 100644 --- a/website/docs/plugin/framework/resources/plan-modification.mdx +++ b/website/docs/plugin/framework/resources/plan-modification.mdx @@ -1,11 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Plan Modification' +page_title: Plan modification description: >- - How to modify plan values and behaviors using the provider development + Learn how to modify plan values and behaviors with the Terraform plugin framework. --- -# Plan Modification +# Plan modification After [validation](/terraform/plugin/framework/validation) and before applying configuration changes, Terraform generates a plan that describes the expected values and behaviors of those changes. Resources can then tailor the plan to match the expected end state, prevent errant in-place updates, or return any [diagnostics](/terraform/plugin/framework/diagnostics). diff --git a/website/docs/plugin/framework/resources/private-state.mdx b/website/docs/plugin/framework/resources/private-state.mdx index 43c84cf47..244b1a9b9 100644 --- a/website/docs/plugin/framework/resources/private-state.mdx +++ b/website/docs/plugin/framework/resources/private-state.mdx @@ -1,11 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Private State Management' +page_title: Private state management description: >- - How to manage private state data in the provider development framework. + Learn how to manage private state data in the Terraform plugin framework. Private state is provider-only data storage for resources. --- -# Private State Management +# Private state management Resource private state is provider maintained data that is stored in Terraform state alongside the schema-defined data. Private state is never accessed or exposed by Terraform plans, however providers can use this data storage for advanced use cases. diff --git a/website/docs/plugin/framework/resources/read.mdx b/website/docs/plugin/framework/resources/read.mdx index f9e6bed80..dc0161ae9 100644 --- a/website/docs/plugin/framework/resources/read.mdx +++ b/website/docs/plugin/framework/resources/read.mdx @@ -1,10 +1,10 @@ --- -page_title: 'Plugin Development - Framework: Read Resources' +page_title: Read resources description: >- - How to implement resource read in the provider development framework. + Learn how to implement resource read in the Terraform plugin framework. --- -# Read Resources +# Read resources Read (refresh) is part of the basic Terraform lifecycle for managing resources. During the [`terraform apply`](/terraform/cli/commands/apply), [`terraform plan`](/terraform/cli/commands/plan), and [`terraform refresh`](/terraform/cli/commands/refresh) commands, Terraform calls the provider [`ReadResource`](/terraform/plugin/framework/internals/rpcs#readresource-rpc) RPC, in which the framework calls the [`resource.Resource` interface `Read` method](https://pkg.go.dev/github.com/hashicorp/terraform-plugin-framework/resource#Resource.Read). The `Read` method is also executed after [resource import](/terraform/plugin/framework/resources/import). The request contains Terraform prior state data. The response contains the refreshed state data. The data is defined by the [schema](/terraform/plugin/framework/schemas) of the resource. diff --git a/website/docs/plugin/framework/resources/state-move.mdx b/website/docs/plugin/framework/resources/state-move.mdx index 8d1e4eb4c..c97dc57cd 100644 --- a/website/docs/plugin/framework/resources/state-move.mdx +++ b/website/docs/plugin/framework/resources/state-move.mdx @@ -1,11 +1,11 @@ --- -page_title: 'Plugin Development - Framework: State Move' +page_title: State move description: >- - How to move state data across managed resource types using the provider - development framework. + Learn how to implement moving state data across managed resource types using + the Terraform plugin framework. --- -# State Move +# State move diff --git a/website/docs/plugin/framework/resources/state-upgrade.mdx b/website/docs/plugin/framework/resources/state-upgrade.mdx index a1cdc1db6..31fd5c678 100644 --- a/website/docs/plugin/framework/resources/state-upgrade.mdx +++ b/website/docs/plugin/framework/resources/state-upgrade.mdx @@ -1,11 +1,11 @@ --- -page_title: 'Plugin Development - Framework: State Upgrade' +page_title: State upgrade description: >- - How to upgrade state data after breaking schema changes using the provider - development framework. + Learn how to implement upgrading state data when provider schema changes from + one version of your Terraform framework provider to another. --- -# State Upgrade +# State upgrade A resource schema captures the structure and types of the resource [state](/terraform/language/state). Any state data that does not conform to the resource schema will generate errors or may not be persisted properly. Over time, it may be necessary for resources to make breaking changes to their schemas, such as changing an attribute type. Terraform supports versioning of these resource schemas and the current version is saved into the Terraform state. When the provider advertises a newer schema version, Terraform will call back to the provider to attempt to upgrade from the saved schema version to the one advertised. This operation is performed prior to planning, but with a configured provider. diff --git a/website/docs/plugin/framework/resources/timeouts.mdx b/website/docs/plugin/framework/resources/timeouts.mdx index a84cc117e..db14bae0c 100644 --- a/website/docs/plugin/framework/resources/timeouts.mdx +++ b/website/docs/plugin/framework/resources/timeouts.mdx @@ -1,7 +1,7 @@ --- -page_title: 'Plugin Development - Framework: Timeouts' +page_title: Timeouts description: >- - How to use timeouts with the provider development framework. + Learn how to implement timeouts with the Terraform plugin framework. --- # Timeouts diff --git a/website/docs/plugin/framework/resources/update.mdx b/website/docs/plugin/framework/resources/update.mdx index 8701a0b5e..a892b4161 100644 --- a/website/docs/plugin/framework/resources/update.mdx +++ b/website/docs/plugin/framework/resources/update.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Update Resources' +page_title: Update resources description: >- - How to implement resource in-place update in the provider development framework. + Learn how to implement in-place updating of resources in the Terraform + plugin framework. --- -# Update Resources +# Update resources In-place update is part of the basic Terraform lifecycle for managing resources. During the [`terraform apply` command](/terraform/cli/commands/apply), Terraform calls the provider [`ApplyResourceChange`](/terraform/plugin/framework/internals/rpcs#applyresourcechange-rpc) RPC, in which the framework calls the [`resource.Resource` interface `Update` method](https://pkg.go.dev/github.com/hashicorp/terraform-plugin-framework/resource#Resource.Update). The request contains Terraform prior state, configuration, and plan data. The response contains updated state data. The data is defined by the [schema](/terraform/plugin/framework/schemas) of the resource. diff --git a/website/docs/plugin/framework/resources/validate-configuration.mdx b/website/docs/plugin/framework/resources/validate-configuration.mdx index fa2b22eaf..4a1d93661 100644 --- a/website/docs/plugin/framework/resources/validate-configuration.mdx +++ b/website/docs/plugin/framework/resources/validate-configuration.mdx @@ -1,10 +1,11 @@ --- -page_title: 'Plugin Development - Framework: Validate Resource Configurations' +page_title: Validate resource configuration description: >- - How to validate resource configurations with the provider development framework. + Learn how to validate resource configuration with the Terraform plugin + framework. --- -# Validate Configuration +# Validate configuration [Resources](/terraform/plugin/framework/resources) support validating an entire practitioner configuration in either declarative or imperative logic. Feedback, such as required syntax or acceptable combinations of values, is returned via [diagnostics](/terraform/plugin/framework/diagnostics). diff --git a/website/docs/plugin/framework/validation.mdx b/website/docs/plugin/framework/validation.mdx index 2711dc65b..fedfbafb9 100644 --- a/website/docs/plugin/framework/validation.mdx +++ b/website/docs/plugin/framework/validation.mdx @@ -1,6 +1,7 @@ --- -page_title: 'Plugin Development - Framework: Validation' -description: How to validate configuration values using the provider development framework. +page_title: Validation +description: >- + Learn how to validate configuration values using the Terraform plugin framework. --- # Validation