hashicorp / terraform-plugin-framework

A next-generation framework for building Terraform providers.
https://developer.hashicorp.com/terraform/plugin/framework
Mozilla Public License 2.0
284 stars 92 forks source link

Default values in provider functions #1012

Open kimdre opened 1 week ago

kimdre commented 1 week ago

Module version

github.com/hashicorp/terraform-plugin-framework v1.9.0

Use-cases

Omit arguments in provider functions when the default is already the correct value.

e.g. My provider function has a filename argument that often is the same value: .env

Attempted Solutions

Setting defaults to provider functions in the Plugin Framework does not work or I was not able to.

Proposal

Provide a additional Default key to the function definition to specify a default value to a parameter:

func (r ExampleFunction) Definition(_ context.Context, _ function.DefinitionRequest, resp *function.DefinitionResponse) {
    resp.Definition = function.Definition{
        Summary: "Example function",
        MarkdownDescription: "Foo bar",
        Parameters: []function.Parameter{
            function.StringParameter{
                Name: "filename",
                MarkdownDescription: "Path to the dotenv file",
                // Add this 
                Default: ".env",
            },
        },
        Return: function.StringReturn{},
    }
}

References