A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.hashicorp.com/terraform/plugin/framework/functions/returns/dynamic below:

Dynamic function return values | Terraform

Dynamic function return values

Tip

Static types should always be preferred over dynamic types, when possible.

Developers creating a function with a dynamic return will need to have extensive knowledge of the Terraform type system to understand how the value type returned can impact practitioner configuration.

Refer to Dynamic Data - Considerations for more information.

Dynamic function return can be any value type from function logic. Set values in function logic with the framework dynamic type.

Use the function.DynamicReturn type in the function definition.

In this example, a function definition includes a dynamic return:

func (f ExampleFunction) Definition(ctx context.Context, req function.DefinitionRequest, resp *function.DefinitionResponse) {
    resp.Definition = function.Definition{
        // ... other Definition fields ...
        Return: function.DynamicReturn{
            // ... potentially other DynamicReturn fields ...
        },
    }
}
Custom Types

You may want to build your own data value and type implementations to allow your provider to combine validation and other behaviors into a reusable bundle. This helps avoid duplication and ensures consistency. These implementations use the CustomType field in the return type.

Refer to Custom Types for further details on creating provider-defined types and values.

Documentation

Return documentation is expected in the top-level function documentation. Refer to function documentation for information about the Summary, Description, and MarkdownDescription fields available.

The function implementation documentation covers the general methods for setting function return data in function logic.

When setting the value for this return:

In this example, a function defines a dynamic return and sets its value to a string:

func (f ExampleFunction) Definition(ctx context.Context, req function.DefinitionRequest, resp *function.DefinitionResponse) {
    resp.Definition = function.Definition{
        // ... other Definition fields ...
        Return: function.DynamicReturn{},
    }
}

func (f ExampleFunction) Run(ctx context.Context, req function.RunRequest, resp *function.RunResponse) {
    // ... other logic ...

    // hardcoded value for example brevity
    result := types.DynamicValue(types.StringValue("hello world!"))

    resp.Error = function.ConcatFuncErrors(resp.Error, resp.Result.Set(ctx, &result))
}

For more detail on working with dynamic values, see the framework dynamic type documentation.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4