-
Notifications
You must be signed in to change notification settings - Fork 91
/
state_upgrader.go
37 lines (33 loc) · 1.37 KB
/
state_upgrader.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package resource
import (
"context"
"github.com/hashicorp/terraform-plugin-framework/tfsdk"
)
// Implementation handler for a UpgradeState operation.
//
// This is used to encapsulate all upgrade logic from a prior state to the
// current schema version when a Resource implements the
// ResourceWithUpgradeState interface.
type StateUpgrader struct {
// Schema information for the prior state version. While not required,
// setting this will populate the UpgradeStateRequest type State
// field similar to other Resource data types. This allows for easier data
// handling such as calling Get() or GetAttribute().
//
// If not set, prior state data is available in the
// UpgradeResourceStateRequest type RawState field.
PriorSchema *tfsdk.Schema
// Provider defined logic for upgrading a resource state from the prior
// state version to the current schema version.
//
// The context.Context parameter contains framework-defined loggers and
// supports request cancellation.
//
// The UpgradeStateRequest parameter contains the prior state data.
// If PriorSchema was set, the State field will be available. Otherwise,
// the RawState must be used.
//
// The UpgradeStateResponse parameter should contain the upgraded
// state data and can be used to signal any logic warnings or errors.
StateUpgrader func(context.Context, UpgradeStateRequest, *UpgradeStateResponse)
}