### <a name="<%= link %>"></a>`<%= name %>`

<% if text -%>
<%= text %>
<% elsif summary -%>
<%= summary %>
<% else -%>
<%= "The #{name} data type." %>
<% end -%>

<% if deprecated -%>
* **DEPRECATED** <%= deprecated %>

<% end -%>
<% if todo -%>
* **TODO** <%= todo %>

<% end -%>
<% if note -%>
* **Note** <%= note %>

<% end -%>
<% if since -%>
* **Since** <%= since %>

<% end -%>
<% if see -%>
* **See also**
<% see.each do |sa| -%>
<% if sa[:name] -%>
<%= "  * #{sa[:name]}" %>
<% end -%>
<% if sa[:text] -%>
<%= "  * #{sa[:text]}" %>
<% end -%>
<% end -%>

<% end -%>
<% if examples -%>
#### Examples

<% examples.each do |eg| -%>
##### <%= eg[:name] %>

```puppet
<%= eg[:text] %>
```

<% end -%>
<% end -%>
<% if alias_of -%>
Alias of<%= code_maybe_block(alias_of) %>

<% end -%>
<% if params -%>
#### Parameters

The following parameters are available in the `<%= name %>` <%= @type %>:

<% params.each do |param| -%>
* [`<%= param[:name] %>`](#<%= param[:link] %>)
<% end -%>

<% params.each do |param| -%>
##### <a name="<%= param[:link] %>"></a>`<%= param[:name] %>`

<% if param[:types] -%>
Data type:<%= code_maybe_block(param[:types].join(', ')) %>

<% end -%>
<%= param[:text] %>

<% if options_for_param(param[:name]) -%>
Options:

<% options_for_param(param[:name]).each do |o| -%>
* **<%= o[:opt_name] %>** `<%= o[:opt_types][0] %>`: <%= o[:opt_text] %>
<% end -%>

<% end -%>
<% if enums_for_param(param[:name]) -%>
Options:

<% enums_for_param(param[:name]).each do |e| -%>
* **<%= e[:opt_name] %>**: <%= e[:opt_text] %>
<% end -%>

<% end -%>
<% if defaults && defaults[param[:name]] -%>
Default value:<%= code_maybe_block(defaults[param[:name]]) %>

<% end -%>
<% end -%>
<% end -%>
<% if functions -%>
#### Functions

The following functions are available in the `<%= name %>` <%= @type %>.

<% functions.each do |func| -%><%= func.render -%><% end -%>
<% end -%>
