diff --git a/internal/provider/example_data_source.go b/internal/provider/example_data_source.go index 1710e20..486aab8 100644 --- a/internal/provider/example_data_source.go +++ b/internal/provider/example_data_source.go @@ -6,8 +6,7 @@ import ( "net/http" "github.com/hashicorp/terraform-plugin-framework/datasource" - "github.com/hashicorp/terraform-plugin-framework/diag" - "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-plugin-log/tflog" ) @@ -34,24 +33,22 @@ func (d *ExampleDataSource) Metadata(ctx context.Context, req datasource.Metadat resp.TypeName = req.ProviderTypeName + "_example" } -func (d *ExampleDataSource) GetSchema(ctx context.Context) (tfsdk.Schema, diag.Diagnostics) { - return tfsdk.Schema{ +func (d *ExampleDataSource) Schema(ctx context.Context, req datasource.SchemaRequest, resp *datasource.SchemaResponse) { + resp.Schema = schema.Schema{ // This description is used by the documentation generator and the language server. MarkdownDescription: "Example data source", - Attributes: map[string]tfsdk.Attribute{ - "configurable_attribute": { + Attributes: map[string]schema.Attribute{ + "configurable_attribute": schema.StringAttribute{ MarkdownDescription: "Example configurable attribute", Optional: true, - Type: types.StringType, }, - "id": { + "id": schema.StringAttribute{ MarkdownDescription: "Example identifier", - Type: types.StringType, Computed: true, }, }, - }, nil + } } func (d *ExampleDataSource) Configure(ctx context.Context, req datasource.ConfigureRequest, resp *datasource.ConfigureResponse) { diff --git a/internal/provider/example_resource.go b/internal/provider/example_resource.go index a8ed35e..0395c69 100644 --- a/internal/provider/example_resource.go +++ b/internal/provider/example_resource.go @@ -5,10 +5,11 @@ import ( "fmt" "net/http" - "github.com/hashicorp/terraform-plugin-framework/diag" "github.com/hashicorp/terraform-plugin-framework/path" "github.com/hashicorp/terraform-plugin-framework/resource" - "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-plugin-log/tflog" ) @@ -36,27 +37,25 @@ func (r *ExampleResource) Metadata(ctx context.Context, req resource.MetadataReq resp.TypeName = req.ProviderTypeName + "_example" } -func (r *ExampleResource) GetSchema(ctx context.Context) (tfsdk.Schema, diag.Diagnostics) { - return tfsdk.Schema{ +func (r *ExampleResource) Schema(ctx context.Context, req resource.SchemaRequest, resp *resource.SchemaResponse) { + resp.Schema = schema.Schema{ // This description is used by the documentation generator and the language server. MarkdownDescription: "Example resource", - Attributes: map[string]tfsdk.Attribute{ - "configurable_attribute": { + Attributes: map[string]schema.Attribute{ + "configurable_attribute": schema.StringAttribute{ MarkdownDescription: "Example configurable attribute", Optional: true, - Type: types.StringType, }, - "id": { + "id": schema.StringAttribute{ Computed: true, MarkdownDescription: "Example identifier", - PlanModifiers: tfsdk.AttributePlanModifiers{ - resource.UseStateForUnknown(), + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), }, - Type: types.StringType, }, }, - }, nil + } } func (r *ExampleResource) Configure(ctx context.Context, req resource.ConfigureRequest, resp *resource.ConfigureResponse) { diff --git a/internal/provider/provider.go b/internal/provider/provider.go index 91ab182..5a563fa 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -5,10 +5,9 @@ import ( "net/http" "github.com/hashicorp/terraform-plugin-framework/datasource" - "github.com/hashicorp/terraform-plugin-framework/diag" "github.com/hashicorp/terraform-plugin-framework/provider" + "github.com/hashicorp/terraform-plugin-framework/provider/schema" "github.com/hashicorp/terraform-plugin-framework/resource" - "github.com/hashicorp/terraform-plugin-framework/tfsdk" "github.com/hashicorp/terraform-plugin-framework/types" ) @@ -34,16 +33,15 @@ func (p *ScaffoldingProvider) Metadata(ctx context.Context, req provider.Metadat resp.Version = p.version } -func (p *ScaffoldingProvider) GetSchema(ctx context.Context) (tfsdk.Schema, diag.Diagnostics) { - return tfsdk.Schema{ - Attributes: map[string]tfsdk.Attribute{ - "endpoint": { +func (p *ScaffoldingProvider) Schema(ctx context.Context, req provider.SchemaRequest, resp *provider.SchemaResponse) { + resp.Schema = schema.Schema{ + Attributes: map[string]schema.Attribute{ + "endpoint": schema.StringAttribute{ MarkdownDescription: "Example provider attribute", Optional: true, - Type: types.StringType, }, }, - }, nil + } } func (p *ScaffoldingProvider) Configure(ctx context.Context, req provider.ConfigureRequest, resp *provider.ConfigureResponse) {