---
schema_version: "1"
id: b4a0f440b9136c9935b1ccede5b72463cafde6d7494fbe36cd9cbaf02fd2706a
title: Metadata Definition
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/retail_api/metadata_definition.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.retail_api.meta/retail_api/metadata_definition.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 3d9bd9d34f16971f7fe40288a4df383575e7a8c544ac327e1a14a01380c9262d
description: This topic describes the metadata structure and the available wizard components that can be used to build wizards.
---
# Metadata Definition

This topic describes the metadata structure and the available wizard components that can be used to build wizards.

## Wizard Configuration

Wizards are generated from a metadata JSON structure defining the list of components that are part of a wizard along with some additional properties to define the available actions and the general layout.

<table class="featureTable sort_table" summary="">
          <caption><span class="tablecap">Table 1. Metadata Properties</span></caption>





          <thead class="thead sorted" align="left">
            <tr>
              <th class="featureTableHeader  " id="d140247e62">Property</th>

              <th class="featureTableHeader  " id="d140247e65">Type</th>

              <th class="featureTableHeader  " id="d140247e68">Required?</th>

              <th class="featureTableHeader  " id="d140247e71">Default Value</th>

              <th class="featureTableHeader  " id="d140247e74">Description</th>

            </tr>

          </thead>

          <tbody class="tbody">
            <tr>
              <td class="entry" headers="d140247e62" data-title="Property">footerLeftButtons</td>

              <td class="entry" headers="d140247e65" data-title="Type">Array&lt;String | WizardButtonMetadata&gt;</td>

              <td class="entry" headers="d140247e68" data-title="Required?">false</td>

              <td class="entry" headers="d140247e71" data-title="Default Value">[]</td>

              <td class="entry" headers="d140247e74" data-title="Description">List of button actions that appears on the footer. The actions
                <strong class="ph uicontrol">cancel</strong> and <strong class="ph uicontrol">submit</strong> have default
                button styles and can be specified as strings. For custom actions, use the <samp class="codeph nolang">WizardButtonMetadata</samp> structure to define proper
                styling for the buttons.
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d140247e62" data-title="Property">footerRightButtons</td>

              <td class="entry" headers="d140247e65" data-title="Type">Array&lt;String | WizardButtonMetadata&gt;</td>

              <td class="entry" headers="d140247e68" data-title="Required?">false</td>

              <td class="entry" headers="d140247e71" data-title="Default Value">[]</td>

              <td class="entry" headers="d140247e74" data-title="Description">List of button actions that appears on the footer. The actions
                <strong class="ph uicontrol">cancel</strong> and <strong class="ph uicontrol">submit</strong> have default
                button styles and can be specified as strings. For custom actions, use the <samp class="codeph nolang">WizardButtonMetadata</samp> structure to define proper
                styling for the buttons.
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d140247e62" data-title="Property">components</td>

              <td class="entry" headers="d140247e65" data-title="Type">Array&lt;WizardComponentMetadata&gt;</td>

              <td class="entry" headers="d140247e68" data-title="Required?">true</td>

              <td class="entry" headers="d140247e71" data-title="Default Value"></td>

              <td class="entry" headers="d140247e74" data-title="Description">List of metadata definitions for the components in the wizard.</td>

            </tr>

            <tr>
              <td class="entry" headers="d140247e62" data-title="Property">columns</td>

              <td class="entry" headers="d140247e65" data-title="Type">Number</td>

              <td class="entry" headers="d140247e68" data-title="Required?">false</td>

              <td class="entry" headers="d140247e71" data-title="Default Value">2</td>

              <td class="entry" headers="d140247e74" data-title="Description">Number of columns the WizardComponent displays.</td>

            </tr>

            <tr>
              <td class="entry" headers="d140247e62" data-title="Property">title</td>

              <td class="entry" headers="d140247e65" data-title="Type">String</td>

              <td class="entry" headers="d140247e68" data-title="Required?">true</td>

              <td class="entry" headers="d140247e71" data-title="Default Value"></td>

              <td class="entry" headers="d140247e74" data-title="Description">Title for the wizard that is displayed on the header of the modal.</td>

            </tr>

            <tr>
              <td class="entry" headers="d140247e62" data-title="Property">size</td>

              <td class="entry" headers="d140247e65" data-title="Type">String</td>

              <td class="entry" headers="d140247e68" data-title="Required?">true</td>

              <td class="entry" headers="d140247e71" data-title="Default Value"></td>

              <td class="entry" headers="d140247e74" data-title="Description">Wizard modal size.<div class="p">Possible values:<ul class="ul bulletList">
                    <li class="li">small</li>

                    <li class="li">large</li>

                  </ul>
                </div>
              </td>

            </tr>

          </tbody>

        </table>

## WizardComponentMetadata

This metadata type describes the components that are inside the wizard. Components render in same order they’re placed in the list.

Each component has its own specific attributes, however, all components share a common set of attributes that must be specified:

{
    "id": "mySlogan"
    "type": "Text",
    "outputProperty": "Slogan",
    "required": true,
    "label": "Slogan",
    "maxLength": 80,
    "minLength": 1,
    "defaultValue": ""
}

Table 2. Shared Component Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| id | String | true | Case-sensitive unique identifier of the component instance. This identifier must be unique between all components in the wizard metadata configuration |
| type | String | true | Type of the component to render. this attribute indicates the component that is rendered on UI. Also, this attribute defines the additional attributes required for the component. |

## WizardButtonMetadata

This metadata structure defines the buttons that appear at the bottom of the wizard.

<table class="featureTable sort_table" summary="">
            <caption><span class="tablecap">Table 3. Button Properties</span></caption>




            <thead class="thead sorted" align="left">
              <tr>
                <th class="featureTableHeader  " id="d140247e332">Property</th>

                <th class="featureTableHeader  " id="d140247e335">Type</th>

                <th class="featureTableHeader  " id="d140247e338">Required</th>

                <th class="featureTableHeader  " id="d140247e341">Description</th>

              </tr>

            </thead>

            <tbody class="tbody">
              <tr>
                <td class="entry" headers="d140247e332" data-title="Property">type</td>

                <td class="entry" headers="d140247e335" data-title="Type">String</td>

                <td class="entry" headers="d140247e338" data-title="Required">true</td>

                <td class="entry" headers="d140247e341" data-title="Description">The action that will be performed after clicking the button. Button type is a
                  free text, which is returned along with the output object when the user clicks a
                  button.</td>

              </tr>

              <tr>
                <td class="entry" headers="d140247e332" data-title="Property">brand</td>

                <td class="entry" headers="d140247e335" data-title="Type">String</td>

                <td class="entry" headers="d140247e338" data-title="Required">true</td>

                <td class="entry" headers="d140247e341" data-title="Description">UI Type of the button. Possible values are:<ul class="ul bulletList">
                    <li class="li"><samp class="codeph nolang">base</samp></li>

                    <li class="li"><samp class="codeph nolang">neutral</samp></li>

                    <li class="li"><samp class="codeph nolang">brand</samp></li>

                    <li class="li"><samp class="codeph nolang">brand-outline</samp></li>

                    <li class="li"><samp class="codeph nolang">destructive</samp></li>

                    <li class="li">
                      <samp class="codeph nolang">destructive-text</samp>
                    </li>

                    <li class="li"><samp class="codeph nolang">inverse</samp></li>

                    <li class="li"><samp class="codeph nolang">success</samp></li>

                  </ul>
                </td>

              </tr>

              <tr>
                <td class="entry" headers="d140247e332" data-title="Property">label</td>

                <td class="entry" headers="d140247e335" data-title="Type">String</td>

                <td class="entry" headers="d140247e338" data-title="Required">true</td>

                <td class="entry" headers="d140247e341" data-title="Description">Label for the button. </td>

              </tr>

            </tbody>

          </table>