Box · Schema

Metadata template

A template for metadata that can be applied to files and folders

Cloud StorageCollaborationContent ManagementDocumentsEnterpriseFile Sharing

Properties

Name Type Description
id string The ID of the metadata template.
type string `metadata_template`
scope string The scope of the metadata template can either be `global` or `enterprise_*`. The `global` scope is used for templates that are available to any Box enterprise. The `enterprise_*` scope represents temp
templateKey string A unique identifier for the template. This identifier is unique across the `scope` of the enterprise to which the metadata template is being applied, yet is not necessarily unique across different ent
displayName string The display name of the template. This can be seen in the Box web app and mobile apps.
hidden boolean Defines if this template is visible in the Box web app UI, or if it is purely intended for usage through the API.
fields array An ordered list of template fields which are part of the template. Each field can be a regular text field, date field, number field, as well as a single or multi-select list.
copyInstanceOnItemCopy boolean Whether or not to include the metadata when a file or folder is copied.
View JSON Schema on GitHub

JSON Schema

box-metadatatemplate-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/MetadataTemplate",
  "title": "Metadata template",
  "type": "object",
  "x-box-resource-id": "metadata_template",
  "x-box-tag": "metadata_templates",
  "description": "A template for metadata that can be applied to files and folders",
  "required": [
    "type",
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "58063d82-4128-7b43-bba9-92f706befcdf",
      "description": "The ID of the metadata template."
    },
    "type": {
      "type": "string",
      "description": "`metadata_template`",
      "example": "metadata_template",
      "enum": [
        "metadata_template"
      ],
      "nullable": false
    },
    "scope": {
      "type": "string",
      "description": "The scope of the metadata template can either be `global` or\n`enterprise_*`. The `global` scope is used for templates that are\navailable to any Box enterprise. The `enterprise_*` scope represents\ntemplates that have been created within a specific enterprise, where `*`\nwill be the ID of that enterprise.",
      "example": "enterprise_123456"
    },
    "templateKey": {
      "type": "string",
      "example": "productInfo",
      "description": "A unique identifier for the template. This identifier is unique across\nthe `scope` of the enterprise to which the metadata template is being\napplied, yet is not necessarily unique across different enterprises.",
      "maxLength": 64,
      "pattern": "^[a-zA-Z_][-a-zA-Z0-9_]*$"
    },
    "displayName": {
      "type": "string",
      "description": "The display name of the template. This can be seen in the Box web app\nand mobile apps.",
      "maxLength": 4096,
      "example": "Product Info"
    },
    "hidden": {
      "type": "boolean",
      "example": true,
      "description": "Defines if this template is visible in the Box web app UI, or if\nit is purely intended for usage through the API."
    },
    "fields": {
      "type": "array",
      "description": "An ordered list of template fields which are part of the template. Each\nfield can be a regular text field, date field, number field, as well as a\nsingle or multi-select list.",
      "items": {
        "type": "object",
        "description": "A field within a metadata template. Fields can be a basic text, date, or\nnumber field, or a list of options.",
        "allOf": [
          {
            "title": "Metadata Field (Read)",
            "description": "A field within a metadata template. Fields can be a basic text, date, or\nnumber field, or a list of options.",
            "required": [
              "type",
              "key",
              "displayName"
            ],
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "example": "string",
                "description": "The type of field. The basic fields are a `string` field for text, a\n`float` field for numbers, and a `date` fields to present the user with a\ndate-time picker.\n\nAdditionally, metadata templates support an `enum` field for a basic list\nof items, and ` multiSelect` field for a similar list of items where the\nuser can select more than one value.\n\n**Note**: The `integer` value is deprecated.\nIt is still present in the response,\nbut cannot be used in the POST request.",
                "enum": [
                  "string",
                  "float",
                  "date",
                  "enum",
                  "multiSelect",
                  "integer"
                ]
              },
              "key": {
                "type": "string",
                "example": "category",
                "description": "A unique identifier for the field. The identifier must\nbe unique within the template to which it belongs.",
                "maxLength": 256
              },
              "displayName": {
                "type": "string",
                "example": "Category",
                "description": "The display name of the field as it is shown to the user in the web and\nmobile apps.",
                "maxLength": 4096
              },
              "description": {
                "type": "string",
                "example": "The category",
                "description": "A description of the field. This is not shown to the user.",
                "maxLength": 4096
              },
              "hidden": {
                "type": "boolean",
                "example": true,
                "description": "Whether this field is hidden in the UI for the user and can only be set\nthrough the API instead."
              },
              "options": {
                "description": "A list of options for this field. This is used in combination with the\n`enum` and `multiSelect` field types.",
                "type": "array",
                "items": {
                  "title": "Metadata Option (Write)",
                  "type": "object",
                  "description": "An option for a Metadata Template Field.\n\nOptions only need to be provided for fields of type `enum` and `multiSelect`.\nOptions represent the value(s) a user can select for the field either through\nthe UI or through the API.",
                  "required": [
                    "key"
                  ],
                  "properties": {
                    "key": {
                      "description": "The text value of the option. This represents both the display name of the\noption and the internal key used when updating templates.",
                      "example": "Category 1",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "properties": {
              "id": {
                "type": "string",
                "example": "822227e0-47a5-921b-88a8-494760b2e6d2",
                "description": "The unique ID of the metadata template field."
              },
              "options": {
                "description": "A list of options for this field. This is used in combination\nwith the `enum` and `multiSelect` field types.",
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "An option for a Metadata Template Field.\n\nOptions are only present for fields of type `enum` and\n`multiSelect`. Options represent the value(s) a user can\nselect for the field either through the UI or through the API.",
                  "allOf": [
                    {
                      "title": "Metadata Option (Write)",
                      "type": "object",
                      "description": "An option for a Metadata Template Field.\n\nOptions only need to be provided for fields of type `enum` and `multiSelect`.\nOptions represent the value(s) a user can select for the field either through\nthe UI or through the API.",
                      "required": [
                        "key"
                      ],
                      "properties": {
                        "key": {
                          "description": "The text value of the option. This represents both the display name of the\noption and the internal key used when updating templates.",
                          "example": "Category 1",
                          "type": "string"
                        }
                      }
                    },
                    {
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "45dc2849-a4a7-40a9-a751-4a699a589190",
                          "description": "The internal unique identifier of the the option."
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        ]
      }
    },
    "copyInstanceOnItemCopy": {
      "type": "boolean",
      "description": "Whether or not to include the metadata when a file or folder is copied.",
      "example": true
    }
  }
}