Skip to content

Commit 7e7910e

Browse files
committed
Merge branch 'main' into av/set-semantic-equality
2 parents 37749fd + c126fe4 commit 7e7910e

File tree

141 files changed

+536
-442
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

141 files changed

+536
-442
lines changed

.github/CODEOWNERS

+5
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
11
* @hashicorp/terraform-devex
2+
3+
# web presence and education
4+
5+
6+
/website/ @hashicorp/team-docs-packer-and-terraform @hashicorp/web-presence @hashicorp/terraform-devex

.github/workflows/ci-github-actions.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-latest
1515
steps:
1616
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
17-
- uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
17+
- uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0
1818
with:
1919
go-version-file: 'go.mod'
2020
- run: go install github.com/rhysd/actionlint/cmd/actionlint@latest

.github/workflows/ci-go.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
runs-on: ubuntu-latest
1818
steps:
1919
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
20-
- uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
20+
- uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0
2121
with:
2222
go-version-file: 'go.mod'
2323
- run: go mod download
@@ -34,7 +34,7 @@ jobs:
3434
with:
3535
path: terraform-provider-corner
3636
repository: hashicorp/terraform-provider-corner
37-
- uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
37+
- uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0
3838
with:
3939
go-version-file: 'go.mod'
4040
- uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3.1.2
@@ -60,7 +60,7 @@ jobs:
6060
with:
6161
path: terraform-provider-corner
6262
repository: hashicorp/terraform-provider-corner
63-
- uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
63+
- uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0
6464
with:
6565
go-version-file: 'go.mod'
6666
- uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3.1.2
@@ -82,13 +82,13 @@ jobs:
8282
go-version: [ '1.23', '1.22' ]
8383
steps:
8484
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
85-
- uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
85+
- uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0
8686
with:
8787
go-version: ${{ matrix.go-version }}
8888
- run: go mod download
8989
- run: go test -coverprofile=coverage.out ./...
9090
- run: go tool cover -html=coverage.out -o coverage.html
91-
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
91+
- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
9292
with:
9393
name: go-${{ matrix.go-version }}-coverage
9494
path: coverage.html

.github/workflows/ci-goreleaser.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ubuntu-latest
1616
steps:
1717
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
18-
- uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
18+
- uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0
1919
with:
2020
go-version-file: 'go.mod'
2121
- uses: goreleaser/goreleaser-action@9ed2f89a662bf1735a48bc8557fd212fa902bebf # v6.1.0

.github/workflows/release.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ jobs:
8484
ref: ${{ inputs.versionNumber }}
8585
fetch-depth: 0
8686

87-
- uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
87+
- uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0
8888
with:
8989
go-version-file: 'go.mod'
9090

tools/go.mod

+5-5
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,14 @@ require (
5353
github.com/thanhpk/randstr v1.0.4 // indirect
5454
github.com/thlib/go-timezone-local v0.0.0-20210907160436-ef149e42d28e // indirect
5555
go.mongodb.org/mongo-driver v1.10.0 // indirect
56-
golang.org/x/crypto v0.21.0 // indirect
56+
golang.org/x/crypto v0.31.0 // indirect
5757
golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect
5858
golang.org/x/net v0.23.0 // indirect
5959
golang.org/x/oauth2 v0.8.0 // indirect
60-
golang.org/x/sync v0.1.0 // indirect
61-
golang.org/x/sys v0.18.0 // indirect
62-
golang.org/x/term v0.18.0 // indirect
63-
golang.org/x/text v0.14.0 // indirect
60+
golang.org/x/sync v0.10.0 // indirect
61+
golang.org/x/sys v0.28.0 // indirect
62+
golang.org/x/term v0.27.0 // indirect
63+
golang.org/x/text v0.21.0 // indirect
6464
google.golang.org/appengine v1.6.7 // indirect
6565
google.golang.org/protobuf v1.33.0 // indirect
6666
gopkg.in/yaml.v3 v3.0.1 // indirect

tools/go.sum

+10-9
Original file line numberDiff line numberDiff line change
@@ -386,8 +386,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
386386
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
387387
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
388388
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
389-
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
390-
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
389+
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
390+
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
391391
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
392392
golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM=
393393
golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE=
@@ -443,8 +443,9 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
443443
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
444444
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
445445
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
446-
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
447446
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
447+
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
448+
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
448449
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
449450
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
450451
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -495,17 +496,17 @@ golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
495496
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
496497
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
497498
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
498-
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
499-
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
499+
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
500+
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
500501
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
501502
golang.org/x/term v0.0.0-20210503060354-a79de5458b56/go.mod h1:tfny5GFUkzUvx4ps4ajbZsCe5lw1metzhBm9T3x7oIY=
502503
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
503504
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
504505
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
505506
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
506507
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
507-
golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
508-
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
508+
golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
509+
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
509510
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
510511
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
511512
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
@@ -517,8 +518,8 @@ golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
517518
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
518519
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
519520
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
520-
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
521-
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
521+
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
522+
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
522523
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
523524
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
524525
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=

website/docs/plugin/framework/acctests.mdx

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
---
2-
page_title: 'Plugin Development - Framework: Acceptance Tests'
2+
page_title: Acceptance tests
33
description: >-
4-
How to write acceptance tests for providers built on the framework. Acceptance
5-
tests imitate applying configuration files.
4+
Learn how to write acceptance tests for providers built on the framework.
5+
Acceptance tests help ensure your provider works as expected by imitating
6+
Terraform operations.
67
---
78

8-
# Acceptance Tests
9+
# Acceptance tests
910

1011
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.
1112

website/docs/plugin/framework/data-sources/configure.mdx

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
---
2-
page_title: 'Plugin Development - Framework: Configure Data Sources'
2+
page_title: Configure data sources
33
description: >-
4-
How to configure data sources with provider data or clients in the provider development framework.
4+
Learn how to configure data sources with provider data or clients in the
5+
Terraform plugin framework.
56
---
67

7-
# Configure Data Sources
8+
# Configure data sources
89

910
[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.
1011

website/docs/plugin/framework/data-sources/index.mdx

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
2-
page_title: 'Plugin Development - Framework: Data Sources'
2+
page_title: Data sources
33
description: >-
4-
How to build data sources in the provider development framework. Data sources
5-
allow Terraform to reference external data.
4+
Data sources allow Terraform to reference external data. Learn how the
5+
framework can help you implement data sources.
66
---
77

8-
# Data Sources
8+
# Data sources
99

1010
[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.
1111

website/docs/plugin/framework/data-sources/timeouts.mdx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
2-
page_title: 'Plugin Development - Framework: Timeouts'
2+
page_title: Timeouts
33
description: >-
4-
How to use timeouts with the provider development framework.
4+
Learn how to implement timeouts with the Terraform plugin framework.
55
---
66

77
# Timeouts

website/docs/plugin/framework/data-sources/validate-configuration.mdx

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
---
2-
page_title: 'Plugin Development - Framework: Validate Data Source Configurations'
2+
page_title: Validate data source configurations
33
description: >-
4-
How to validate data source configurations with the provider development framework.
4+
Learn how to validate data source configurations with the Terraform plugin
5+
framework.
56
---
67

7-
# Validate Configuration
8+
# Validate data source configurations
89

910
[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).
1011

website/docs/plugin/framework/debugging.mdx

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
---
2-
page_title: Plugin Development - Debugging Framework Providers
3-
description: How to implement debugger support in Framework Terraform providers.
2+
page_title: Debugging framework providers
3+
description: >-
4+
Learn how to implement debugger support in framework Terraform providers.
45
---
56

6-
# Debugging Framework Providers
7+
# Debugging framework Providers
78

89
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.
910

website/docs/plugin/framework/deprecations.mdx

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
---
2-
page_title: 'Plugin Development - Deprecations, Removals, and Renames Best Practices'
3-
description: 'Recommendations for deprecations, removals, and renames.'
2+
page_title: Deprecations, removals, and renames
3+
description:
4+
Use the following recommendations to handle deprecations, removals, and
5+
renames in framework providers.
46
---
57

6-
# Deprecations, Removals, and Renames
8+
# Deprecations, removals, and renames
79

810
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.
911

website/docs/plugin/framework/diagnostics.mdx

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
---
2-
page_title: 'Plugin Development - Framework: Errors and Warnings'
3-
description: |-
4-
How to return errors and warnings from the Terraform provider development
5-
framework.
2+
page_title: Errors and warnings
3+
description: >-
4+
Learn how to return errors and warnings from the Terraform plugin framework.
65
---
76

8-
# Returning Errors and Warnings
7+
# Returning errors and warnings
98

109
Providers use `Diagnostics` to surface errors and warnings to practitioners,
1110
such as contextual messages returned from Terraform CLI at the end of

website/docs/plugin/framework/ephemeral-resources/close.mdx

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
page_title: 'Plugin Development - Framework: Open Ephemeral Resources'
2+
page_title: Closing ephemeral resources
33
description: >-
4-
How to implement ephemeral resource close in the provider development framework.
4+
Learn how to close ephemeral resource in the Terraform plugin framework.
55
---
66

7-
# Close Ephemeral Resources
7+
# Closing Ephemeral Resources
88

99
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.
1010

website/docs/plugin/framework/ephemeral-resources/configure.mdx

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
---
2-
page_title: 'Plugin Development - Framework: Configure Ephemeral Resources'
2+
page_title: Configuring ephemeral resources
33
description: >-
4-
How to configure ephemeral resources with provider data or clients in the provider development framework.
4+
Learn how to configure ephemeral resources with provider data or clients in
5+
the Terraform plugin framework.
56
---
67

7-
# Configure Ephemeral Resources
8+
# Configuring ephemeral resources
89

910
[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.
1011

website/docs/plugin/framework/ephemeral-resources/index.mdx

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
2-
page_title: 'Plugin Development - Framework: Ephemeral Resources'
2+
page_title: Ephemeral resources
33
description: >-
4-
How to build ephemeral resources in the provider development framework. Ephemeral
5-
resources allow Terraform to reference external data, while guaranteeing that this
6-
data will not be persisted in plan or state.
4+
Ephemeral resources allow Terraform to reference external data, while
5+
guaranteeing that this data will not be persisted in plan or state. Learn how
6+
to implement ephemeral resources in the Terraform plugin framework.
77
---
88

9-
# Ephemeral Resources
9+
# Ephemeral resources
1010

1111
<Highlight>
1212

website/docs/plugin/framework/ephemeral-resources/open.mdx

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
page_title: 'Plugin Development - Framework: Open Ephemeral Resources'
2+
page_title: Opening ephemeral resources
33
description: >-
4-
How to implement ephemeral resource open in the provider development framework.
4+
Learn how to open ephemeral resource in the Terraform plugin framework.
55
---
66

7-
# Open Ephemeral Resources
7+
# Opening ephemeral resources
88

99
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.
1010

0 commit comments

Comments
 (0)