You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
generate: The .ProviderShortName template function now uses the rendered provider name to derive the provider short name. Users that pass in the --rendered-provider-name flag might see a different output for this function (#492)
NOTES:
generate: Generated import documentation will now contain more information about which methods are supported by the provider (CLI command, config by ID, config by identity). (#495)
FEATURES:
generate: Added support for defining import example file (import-by-string-id.tf) using Terraform configuration and the id attribute (#472)
generate: Added support for defining import example file (import-by-identity.tf) using Terraform configuration and the identity attribute (managed resource identity) (#496)
ENHANCEMENTS:
validate: Add allowed-guide-subcategories and allowed-resource-subcategories to provide a list of allowed subcategories (#456)
validate: Add allowed-guide-subcategories-file and allowed-resource-subcategories-file to provide a file containing a list of allowed subcategories (#456)
generate: Default resource and function templates now use .RenderedProviderName instead of .ProviderName (#492)
generate: Remove trailing whitespace from default function template when .HasVariadic evaluates to false (#489)
BUG FIXES:
validate: Fixed a bug that caused all non-index files to be detected as guides (#456)
generate: Remove subcategory field from default provider templates (#446)
all: This Go module has been updated to Go 1.24 per the Go support policy. It is recommended to review the Go 1.24 release notes before upgrading. Any consumers building on earlier Go versions may experience errors. (#1217)
Support for the new action{} block is in technical preview and offered without compatibility promises until Terraform 1.14 is generally available. (#1181)
action: This release contains a new interface (action.Action) and packages for implementing action types, available in Terraform 1.14+. An action in Terraform can be defined by providers to model side-effects that practitioners can reference in their configurations via the lifecycle.action_trigger block. (#1181)
List support is in technical preview and offered without compatibility promises until Terraform 1.14 is generally available. (#1150)
list: This release contains a new interface (list.ListResource) and packages for implementing list resource types, available in Terraform 1.14+. A list resource in Terraform can be defined by providers to list remote resources within a given scope. (#1150)
FEATURES:
action: New package for implementing actions. (#1181)
action/schema: New package for implementing action schemas. (#1183)
types: Exported a previously internal function, TerraformTypeToFrameworkType, which converts tftypes.Type to a known framework type. (#1200)
list: New package for implementing list resources. (#1150)
all: Update Framework to handle new ListResource RPCs. (#1157)
ENHANCEMENTS:
provider: Added ProviderWithActions interface for implementing actions. (#1181)
provider: Added ActionData to ConfigureResponse, to pass provider-defined data to action.Action implementations. (#1185)
provider: Added ListResourceData to ConfigureResponse, to pass provider-defined data to list.ListResource implementations. (#1202)
tfsdk: Allow SetAtPath to be called with a tftypes.Value. (#1198)
tfsdk: Allow SetAttribute to be called with a tftypes.Value. (#1205)
list: Add the ListResourceWithRawV5Schemas and ListResourceWithRawV6Schemas interfaces to support list implementation on non-framework resources. (#1198)
ATTENTION:
Please make sure to also update terraform-plugin-(go|mux|sdk|testing) when upgrading to this version. Otherwise there will be errors at runtime when using Terraform v1.12+ as this version of Plugin Framework supports the new resource identity feature and requires the supporting libraries to do so to.
all: This Go module has been updated to Go 1.23 per the Go support policy. It is recommended to review the Go 1.23 release notes before upgrading. Any consumers building on earlier Go versions may experience errors. (#1114)
all: This release contains a new interface and package for implmenting managed resource identity. Resource identity is data that is defined by a separate schema and is stored alongside resource state. Identity data is used by Terrform to uniquely identify a remote object and is meant to be immutable during the remote object's lifecycle. Resources that support identity can now be imported using the identity attribute in Terraform configuration import blocks, available in Terraform v1.12+. The resource.ResourceWithIdentity interface can be implemented to support identity by defining an identity schema. Once the identity schema is defined, you can read and store identity data in the state file via the new Identity fields in the response objects on the resource CRUD methods. (#1112)
all: This Go module has been updated to Go 1.24 per the Go support policy. It is recommended to review the Go 1.24 release notes before upgrading. Any consumers building on earlier Go versions may experience errors. (#307)
FEATURES:
actionvalidator: Introduce new package with declarative validators for action configurations (#302)
listresourcevalidator: Introduce new package with declarative validators for list resource configurations (#298)
all: This Go module has been updated to Go 1.23 per the Go support policy. It is recommended to review the Go 1.23 release notes before upgrading. Any consumers building on earlier Go versions may experience errors. (#276)
BUG FIXES:
all: Fixed bug with PreferWriteOnlyAttribute validator not running when client is capable of using write-only attributes. (#287)
all: This Go module has been updated to Go 1.24 per the Go support policy. It is recommended to review the Go 1.24 release notes before upgrading. Any consumers building on earlier Go versions may experience errors. (#556)
tfprotov5+tfprotov6: An upcoming release will require the ActionServer implementation as part of ProviderServer. (#534)
FEATURES:
tfprotov5+tfprotov6: Upgraded protocols and added types to support the new action type. (#534)
tfprotov5+tfprotov6: Upgraded protocols and added types to support the new list type (#525)
ENHANCEMENTS:
tftypes: tftypes.Value.IsFullyNull() allows SDKs to determine when a value is null or consists of only null elements and attributes. (#541)
tfprotov5+tfprotov6: Removed temporary ProviderServerWithResourceIdentity interface type. Use ProviderServer instead. (#516)
tfprotov5+tfprotov6: GetResourceIdentitySchemas and UpgradeResourceIdentity RPC calls are now required in ProviderServer and ResourceServer. Implementations that don't support resource identity can return empty responses from the GetResourceIdentitySchemas method and an error message the UpgradeResourceIdentity method. (#516)
tfprotov5+tfprotov6: An upcoming release will require the GetResourceIdentitySchemas and UpgradeResourceIdentity implementations as part of ProviderServer. (#476)
all: This Go module has been updated to Go 1.23 per the Go support policy. It is recommended to review the Go 1.23 release notes before upgrading. Any consumers building on earlier Go versions may experience errors. (#491)
FEATURES:
tfprotov5+tfprotov6: Upgraded protocols and added types to support the new resource identity feature (#476)
Add WithManagedDebugEnvFilePath() option that allows writing TF_REATTACH_PROVIDERS to an environment file (#484)
all: This Go module has been updated to Go 1.24 per the Go support policy. It is recommended to review the Go 1.24 release notes before upgrading. Any consumers building on earlier Go versions may experience errors. (#1518)
helper/schema: Update the provider server to handle the ListResource RPCs by returning an error since they are not supported by SDKv2. (#1521)
helper/schema: Update the provider server to handle Action RPCs by returning an error since they are not supported by SDKv2. (#1522)
ENHANCEMENTS:
helper/schema: Added new helper methods for converting Resource and Identity schemas to protocol representations. (#1504)
helper/schema: Added an additional validation check to ensure the resource identity object is not null. (#1513)
helper/schema: Added the TfTypeIdentityState() and TfTypeResourceState() methods to ResourceData which return the identity and state values as a tftypes.Value. (#1508)
all: This Go module has been updated to Go 1.23 per the Go support policy. It is recommended to review the Go 1.23 release notes before upgrading. Any consumers building on earlier Go versions may experience errors. (#1445)
all: This release contains new fields and structs for implmenting managed resource identity. Resource identity is data that is defined by a separate schema and is stored alongside resource state. Identity data is used by Terrform to uniquely identify a remote object and is meant to be immutable during the remote object's lifecycle. Resources that support identity can now be imported using the identity attribute in Terraform configuration import blocks, available in Terraform v1.12+. The resource.Identity field on the schema.Resource struct can be used to support identity by defining an identity schema. Once the identity schema is defined, you can read and store identity data in the state file with the new IdentityData struct that is available via the Identity() method on schema.ResourceData and schema.ResourceDiff structs. (#1444)
FEATURES:
helper/schema: Added new TestResourceDataWithIdentityRaw function for creating a ResourceData struct with identity data for unit testing. (#1475)
helper/schema: Added new Identity field to Resource that supports defining an identity schema for managed resources only. (#1444)
Added new ImportStatePassthroughWithIdentity helper that can support both identity and ID importing via a single field. (#1474)
ENHANCEMENTS:
helper/schema: Added RequiredForImport and OptionalForImport fields to the Schema struct, which are only valid for identity schemas. (#1444)
helper/schema: Updated ResourceData to support passing of identity data in CRUD and import functions for managed resources. (#1444)
BUG FIXES:
helper/schema: Fixed bug that blocked write-only attributes from being used with resources without update functions. (#1472)
helper/resource: Updated ImportBlockWith* import state modes to use the ExpectNonEmpty field to allow non-empty import plans to pass successfully. (#518)
helper/resource: Fixed bug with import state mode where prior test config is not used for ConfigFile or ConfigDirectory (#516)
echoprovider: Fixed bug where Terraform v1.12+ would return an error message indicating the provider doesn't support GetResourceIdentitySchemas. (#512)
reduced the volume of DEBUG-level logging to make it easier to visually scan debug output (#463)
FEATURES:
ImportState: Added support for testing plannable import via Terraform configuration. Configuration is used from the previous test step if available. Config, ConfigFile, and ConfigDirectory can also be used directly with ImportState if needed. (#442)
ImportState: Added ImportStateKind to control which method of import the ImportState test step uses. ImportCommandWithID (default, same behavior as today) , ImportBlockWithID, and ImportBlockWithResourceIdentity. (#442)
ImportState: Added ImportStateConfigExact to opt-out of new import config generation for plannable import. (#494)
statecheck: Added ExpectIdentityValueMatchesState state check to assert that an identity value matches a state value at the same path. (#503)
statecheck: Added ExpectIdentityValueMatchesStateAtPath state check to assert that an identity value matches a state value at different paths. (#503)
ENHANCEMENTS:
statecheck: Added ExpectIdentityValue state check, which asserts a specified attribute value of a managed resource identity in state. (#468)
statecheck: Added ExpectIdentity state check, which asserts all data of a managed resource identity in state. (#470)
Adds AdditionalCLIOptions.PlanOptions.NoRefresh to test terraform plan -refresh=false (#490)
This release fixes #1785 introduced in v1.11.0 where expected argument values implementing the stringer interface (String() string) with a method which mutates their value, when passed to mock.Mock.On (m.On("Method", <expected>).Return()) or actual argument values passed to mock.Mock.Called may no longer match one another where they previously did match. The behaviour prior to v1.11.0 where the stringer is always called is restored. Future testify releases may not call the stringer method at all in this case.
This PR contains the following updates:
11bd719
->08eba0b
v4.2.2
->v4.3.0
v5.4.0
->v5.5.0
cdca736
->49933ea
2269511
->d4b2f3b
v6.2.0
->v6.3.0
v0.22.0
->v0.23.1
v0.21.0
->v0.22.0
v0.21.0
->v0.23.0
v1.14.1
->v1.16.1
v0.17.0
->v0.19.0
v0.26.0
->v0.29.0
v2.36.1
->v2.38.1
v1.12.0
->v1.13.3
v1.3.2-0.20230802210424-5b0b94c5c0d3
->v1.4.0
v1.9.0
->v1.11.1
5f8171a
->755f449
1.24.1
->1.25.2
054e65f
->d2f985d
v0.28.0
->v0.32.0
v0.23.0
->v0.30.0
1481404
->9fae48a
v6.2.1
->v6.4.0
592200b
->000eeb8
Release Notes
actions/checkout (actions/checkout)
v4.3.0
Compare Source
What's Changed
New Contributors
Full Changelog: actions/checkout@v4...v4.3.0
actions/setup-go (actions/setup-go)
v5.5.0
Compare Source
What's Changed
Bug fixes:
Dependency updates:
New Contributors
Full Changelog: actions/setup-go@v5...v5.5.0
crazy-max/ghaction-import-gpg (crazy-max/ghaction-import-gpg)
v6.3.0
Compare Source
Full Changelog: crazy-max/ghaction-import-gpg@v6.2.0...v6.3.0
go-openapi/loads (github.com/go-openapi/loads)
v0.23.1
Compare Source
v0.23.0
Compare Source
go-openapi/spec (github.com/go-openapi/spec)
v0.22.0
Compare Source
hashicorp/terraform-plugin-docs (github.com/hashicorp/terraform-plugin-docs)
v0.23.0
Compare Source
FEATURES:
v0.22.0
Compare Source
BREAKING CHANGES:
.ProviderShortName
template function now uses the rendered provider name to derive the provider short name. Users that pass in the--rendered-provider-name
flag might see a different output for this function (#492)NOTES:
FEATURES:
import-by-string-id.tf
) using Terraform configuration and theid
attribute (#472)import-by-identity.tf
) using Terraform configuration and theidentity
attribute (managed resource identity) (#496)ENHANCEMENTS:
allowed-guide-subcategories
andallowed-resource-subcategories
to provide a list of allowed subcategories (#456)allowed-guide-subcategories-file
andallowed-resource-subcategories-file
to provide a file containing a list of allowed subcategories (#456).RenderedProviderName
instead of.ProviderName
(#492).HasVariadic
evaluates to false (#489)BUG FIXES:
subcategory
field from default provider templates (#446)hashicorp/terraform-plugin-framework (github.com/hashicorp/terraform-plugin-framework)
v1.16.1
Compare Source
BUG FIXES:
v1.16.0
Compare Source
NOTES:
action{}
block is in technical preview and offered without compatibility promises until Terraform 1.14 is generally available. (#1181)action.Action
) and packages for implementing action types, available in Terraform 1.14+. An action in Terraform can be defined by providers to model side-effects that practitioners can reference in their configurations via thelifecycle.action_trigger
block. (#1181)list.ListResource
) and packages for implementing list resource types, available in Terraform 1.14+. A list resource in Terraform can be defined by providers to list remote resources within a given scope. (#1150)FEATURES:
TerraformTypeToFrameworkType
, which convertstftypes.Type
to a known framework type. (#1200)ENHANCEMENTS:
ProviderWithActions
interface for implementing actions. (#1181)ActionData
toConfigureResponse
, to pass provider-defined data toaction.Action
implementations. (#1185)ListResourceData
toConfigureResponse
, to pass provider-defined data tolist.ListResource
implementations. (#1202)SetAtPath
to be called with atftypes.Value
. (#1198)SetAttribute
to be called with atftypes.Value
. (#1205)ListResourceWithRawV5Schemas
andListResourceWithRawV6Schemas
interfaces to support list implementation on non-framework resources. (#1198)v1.15.1
Compare Source
BUG FIXES:
UseStateForUnknown
where known null state values were not preserved during update plans. (#1117)v1.15.0
Compare Source
ATTENTION:
Please make sure to also update
terraform-plugin-(go|mux|sdk|testing)
when upgrading to this version. Otherwise there will be errors at runtime when using Terraform v1.12+ as this version of Plugin Framework supports the new resource identity feature and requires the supporting libraries to do so to.Find #1148 for more information.
TL;DR – make sure to update to these versions (or higher)
NOTES:
identity
attribute in Terraform configurationimport
blocks, available in Terraform v1.12+. Theresource.ResourceWithIdentity
interface can be implemented to support identity by defining an identity schema. Once the identity schema is defined, you can read and store identity data in the state file via the newIdentity
fields in the response objects on the resource CRUD methods. (#1112)FEATURES:
ResourceIdentity
struct to represent managed resource identity data. (#1112)ImportStatePassthroughWithIdentity
helper that can support both identity and ID importing via a single field. (#1134)ResourceWithIdentity
interface for implementing managed resource identity. (#1107)ENHANCEMENTS:
Create
,Update
,Read
, andDelete
request and response objects to support the passing of identity data. (#1112)ImportState
method to allow importing by resource identity and returning identity data from import response. (#1126)hashicorp/terraform-plugin-framework-validators (github.com/hashicorp/terraform-plugin-framework-validators)
v0.19.0
Compare Source
NOTES:
FEATURES:
v0.18.0
Compare Source
NOTES:
BUG FIXES:
hashicorp/terraform-plugin-go (github.com/hashicorp/terraform-plugin-go)
v0.29.0
Compare Source
NOTES:
ActionServer
implementation as part ofProviderServer
. (#534)FEATURES:
ENHANCEMENTS:
tftypes.Value.IsFullyNull()
allows SDKs to determine when a value is null or consists of only null elements and attributes. (#541)v0.28.0
Compare Source
BREAKING CHANGES:
ProviderServerWithResourceIdentity
interface type. UseProviderServer
instead. (#516)GetResourceIdentitySchemas
andUpgradeResourceIdentity
RPC calls are now required inProviderServer
andResourceServer
. Implementations that don't support resource identity can return empty responses from theGetResourceIdentitySchemas
method and an error message theUpgradeResourceIdentity
method. (#516)NOTES:
v0.27.0
Compare Source
NOTES:
GetResourceIdentitySchemas
andUpgradeResourceIdentity
implementations as part ofProviderServer
. (#476)FEATURES:
hashicorp/terraform-plugin-sdk (github.com/hashicorp/terraform-plugin-sdk/v2)
v2.38.1
Compare Source
BUG FIXES:
v2.38.0
Compare Source
NOTES:
ENHANCEMENTS:
TfTypeIdentityState()
andTfTypeResourceState()
methods toResourceData
which return the identity and state values as atftypes.Value
. (#1508)v2.37.0
Compare Source
NOTES:
identity
attribute in Terraform configurationimport
blocks, available in Terraform v1.12+. Theresource.Identity
field on theschema.Resource
struct can be used to support identity by defining an identity schema. Once the identity schema is defined, you can read and store identity data in the state file with the newIdentityData
struct that is available via theIdentity()
method onschema.ResourceData
andschema.ResourceDiff
structs. (#1444)FEATURES:
TestResourceDataWithIdentityRaw
function for creating aResourceData
struct with identity data for unit testing. (#1475)Identity
field toResource
that supports defining an identity schema for managed resources only. (#1444)ImportStatePassthroughWithIdentity
helper that can support both identity and ID importing via a single field. (#1474)ENHANCEMENTS:
RequiredForImport
andOptionalForImport
fields to theSchema
struct, which are only valid for identity schemas. (#1444)ResourceData
to support passing of identity data in CRUD and import functions for managed resources. (#1444)BUG FIXES:
hashicorp/terraform-plugin-testing (github.com/hashicorp/terraform-plugin-testing)
v1.13.3
Compare Source
NOTES:
v1.13.2
Compare Source
BUG FIXES:
ImportBlockWith*
import state modes to use theExpectNonEmpty
field to allow non-empty import plans to pass successfully. (#518)ConfigFile
orConfigDirectory
(#516)v1.13.1
Compare Source
BUG FIXES:
GetResourceIdentitySchemas
. (#512)v1.13.0
Compare Source
NOTES:
FEATURES:
Config
,ConfigFile
, andConfigDirectory
can also be used directly withImportState
if needed. (#442)ImportStateKind
to control which method of import theImportState
test step uses.ImportCommandWithID
(default, same behavior as today) ,ImportBlockWithID
, andImportBlockWithResourceIdentity
. (#442)ImportStateConfigExact
to opt-out of new import config generation for plannable import. (#494)ExpectIdentityValueMatchesState
state check to assert that an identity value matches a state value at the same path. (#503)ExpectIdentityValueMatchesStateAtPath
state check to assert that an identity value matches a state value at different paths. (#503)ENHANCEMENTS:
ExpectIdentityValue
state check, which asserts a specified attribute value of a managed resource identity in state. (#468)ExpectIdentity
state check, which asserts all data of a managed resource identity in state. (#470)AdditionalCLIOptions.PlanOptions.NoRefresh
to testterraform plan -refresh=false
(#490)sergi/go-diff (github.com/sergi/go-diff)
v1.4.0
Compare Source
stretchr/testify (github.com/stretchr/testify)
v1.11.1
Compare Source
This release fixes #1785 introduced in v1.11.0 where expected argument values implementing the stringer interface (
String() string
) with a method which mutates their value, when passed to mock.Mock.On (m.On("Method", <expected>).Return()
) or actual argument values passed to mock.Mock.Called may no longer match one another where they previously did match. The behaviour prior to v1.11.0 where the stringer is always called is restored. Future testify releases may not call the stringer method at all in this case.What's Changed
Full Changelog: stretchr/testify@v1.11.0...v1.11.1
v1.11.0
Compare Source
What's Changed
Functional Changes
v1.11.0 Includes a number of performance improvements.
Fixes
Documentation, Build & CI