---
page_title: 'Plugin Development - Framework: Function Returns'
description: >-
  Learn the function return types in the provider development framework.
  A return describes the output data in a function definition.
---

# Returns

A return in a [function definition](/terraform/plugin/framework/functions/implementation#definition-method) describes the result data value from function logic. Every return type has an associated [value type](/terraform/plugin/framework/handling-data/types), although this data handling is simplified for function implementations over other provider concepts, such as resource implementations.

## Available Return Types

Function definitions support the following return types:

- [Primitive](#primitive-return-types): Return that expects a single value, such as a boolean, number, or string.
- [Collection](#collection-return-types): Return that expects multiple values of a single element type, such as a list, map, or set.
- [Object](#object-return-type): Return that expects a structure of explicit attribute names.
- [Dynamic](#dynamic-return-type): Return that can be any value type.

### Primitive Return Types

Return types that expect a single data value, such as a boolean, number, or string.

| Return Type | Use Case |
|----------------|----------|
| [Bool](/terraform/plugin/framework/functions/returns/bool) | Boolean true or false |
| [Float32](/terraform/plugin/framework/functions/returns/float32) | 32-bit floating point number |
| [Float64](/terraform/plugin/framework/functions/returns/float64) | 64-bit floating point number |
| [Int32](/terraform/plugin/framework/functions/returns/int32) | 32-bit integer number |
| [Int64](/terraform/plugin/framework/functions/returns/int64) | 64-bit integer number |
| [Number](/terraform/plugin/framework/functions/returns/number) | Arbitrary precision (generally over 64-bit, up to 512-bit) number |
| [String](/terraform/plugin/framework/functions/returns/string) | Collection of UTF-8 encoded characters |

### Collection Return Types

Return types that expect multiple values of a single element type, such as a list, map, or set.

| Return Type | Use Case |
|----------------|----------|
| [List](/terraform/plugin/framework/functions/returns/list) | Ordered collection of single element type |
| [Map](/terraform/plugin/framework/functions/returns/map) | Mapping of arbitrary string keys to values of single element type |
| [Set](/terraform/plugin/framework/functions/returns/set) | Unordered, unique collection of single element type |

### Object Return Type

Return type that expects a structure of explicit attribute names.

| Return Type | Use Case |
|----------------|----------|
| [Object](/terraform/plugin/framework/functions/returns/object) | Single structure mapping explicit attribute names |

### Dynamic Return Type

Return type that can be any value type, determined by the provider at runtime.

| Return Type | Use Case |
|----------------|----------|
| [Dynamic](/terraform/plugin/framework/functions/returns/dynamic) | Return any value type of data, determined at runtime. |