Box Developerドキュメント
最新バージョン

メタデータテンプレートを作成

post
https://api.box.com/2.0
/metadata_templates/schema

このエンドポイントはバージョン2024.0です。引き続き使用するために 変更は必要ありません。詳細については、 **Box APIのバージョン管理**を参照してください。

ファイルやフォルダに適用可能な新しいメタデータテンプレートを作成します。

リクエスト

bearer [ACCESS_TOKEN]
application/json

リクエスト本文

boolean本文内省略可能
true
false

ファイルまたはフォルダをコピーするときに、追加されているメタデータをコピーするかどうか。デフォルトでは、ファイルまたはフォルダのコピー時に、メタデータは一緒にコピーされません。

string本文内必須
"Product Info"
4096

テンプレートの表示名。

object array本文内省略可能

テンプレートに含まれるテンプレートフィールドの順序付きリスト。各フィールドは、通常のテキストフィールド、日付フィールド、数値フィールド、単一または複数選択リストのいずれかになります。

string本文内条件付きで必須
"string"

The type of field. The basic fields are a string field for text, a float field for numbers, and a date field to present the user with a date-time picker.

さらに、メタデータテンプレートは、基本の項目リストを表すenumフィールドのほか、ユーザーが複数の値を選択できる同様の項目リストを表す multiSelectフィールドをサポートしています。

Metadata taxonomies are also supported as a taxonomy field type with a specific set of additional properties, which describe its structure.

次の値のいずれか1つ: string,float,date,enum,multiSelect,taxonomy

string本文内省略可能
"The category"
4096

フィールドの説明。ユーザーには表示されません。

string本文内条件付きで必須
"Category"
4096

ウェブアプリおよびモバイルアプリでユーザーに表示されるフィールドの表示名。

boolean本文内省略可能
true

このフィールドをUI上でユーザーに対して非表示にし、代わりにAPIを介してのみ設定できるようにするかどうか。

string本文内条件付きで必須
"category"
256

フィールドの一意の識別子。この識別子は、そのフィールドが属するテンプレート内で一意である必要があります。

string本文内省略可能
"enterprise_123456"

The namespace of the metadata taxonomy to use for this taxonomy field. This property is required when the field type is set to taxonomy.

object array本文内省略可能

このフィールドのオプションのリスト。enumおよびmultiSelectフィールドタイプと組み合わせて使用します。

string本文内条件付きで必須
"Category 1"

オプションのテキスト値。オプションの表示名と、テンプレートの更新時に使用される内部キーの両方を表します。

object本文内

An object defining additional rules for the options of the taxonomy field. This property is required when the field type is set to taxonomy.

boolean本文内省略可能
true

Whether to allow users to select multiple values.

integer array本文内省略可能
[1,2]

An array of integers defining which levels of the taxonomy are selectable by users.

string本文内省略可能
"locationTaxonomy"

The unique key of the metadata taxonomy to use for this taxonomy field. This property is required when the field type is set to taxonomy.

boolean本文内省略可能
true
false

このテンプレートをBoxウェブアプリのUIに表示するか、APIを介した使用のみを目的とするかを定義します。

string本文内必須
"enterprise"

作成するメタデータテンプレートのスコープ。アプリケーションで作成できるのは、認証済みユーザーの会社内で使用するテンプレートのみです。

この値はenterpriseに設定する必要があります。globalスコープはアプリケーションで作成できないからです。

string本文内省略可能
^[a-zA-Z_][-a-zA-Z0-9_]*$
"productInfo"
64

テンプレートの一意の識別子。この識別子は、メタデータテンプレート作成の対象となる会社全体で一意である必要があります。

指定しなかった場合、APIによりdisplayNameの値に基づいて一意のtemplateKeyが作成されます。

レスポンス

作成されたメタデータテンプレートを表すスキーマ。

リクエストのパラメータまたは本文が無効な場合に返されます。

  • bad_request - 本文に有効なリクエストが含まれていない場合に返されます。多くの場合、このレスポンスには、不足しているフィールドに関する追加の詳細が含まれます。

ユーザーにメタデータテンプレートを作成する権限がない場合に返されます。その理由はいくつかありますが、最も一般的なのは、ユーザーが (共同) 管理者権限を持っていないこと、またはアプリケーションがglobalスコープのテンプレートを作成しようとしていることです。

予期しないクライアントエラー。

post
メタデータテンプレートを作成
このドキュメント内で一部のAPIを試せるようになりました。
ログイン

リクエストの例

Box SDKのバージョン戦略の詳細については、 **こちら**を確認してください。


cURL
curl -i -X POST "https://api.box.com/2.0/metadata_templates/schema" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -H "content-type: application/json" \
     -d '{
      "scope": "enterprise",
      "displayName": "Customer",
      "fields": [
        {
          "type": "string",
          "key": "name",
          "displayName": "Name",
          "description": "The customer name",
          "hidden": false
        },
        {
          "type": "date",
          "key": "last_contacted_at",
          "displayName": "Last Contacted At",
          "description": "When this customer was last contacted at",
          "hidden": false
        },
        {
          "type": "enum",
          "key": "industry",
          "displayName": "Industry",
          "options": [
            {"key": "Technology"},
            {"key": "Healthcare"},
            {"key": "Legal"}
          ]
        },
        {
          "type": "multiSelect",
          "key": "role",
          "displayName": "Contact Role",
          "options": [
            {"key": "Developer"},
            {"key": "Business Owner"},
            {"key": "Marketing"},
            {"key": "Legal"},
            {"key": "Sales"}
          ]
        }
      ]
    }'
Node/TypeScript v10
await client.metadataTemplates.createMetadataTemplate({
  scope: 'enterprise',
  displayName: templateKey,
  templateKey: templateKey,
  fields: [
    {
      type: 'string' as CreateMetadataTemplateRequestBodyFieldsTypeField,
      key: 'testName',
      displayName: 'testName',
    } satisfies CreateMetadataTemplateRequestBodyFieldsField,
    {
      type: 'float' as CreateMetadataTemplateRequestBodyFieldsTypeField,
      key: 'age',
      displayName: 'age',
    } satisfies CreateMetadataTemplateRequestBodyFieldsField,
    {
      type: 'date' as CreateMetadataTemplateRequestBodyFieldsTypeField,
      key: 'birthDate',
      displayName: 'birthDate',
    } satisfies CreateMetadataTemplateRequestBodyFieldsField,
    {
      type: 'enum' as CreateMetadataTemplateRequestBodyFieldsTypeField,
      key: 'countryCode',
      displayName: 'countryCode',
      options: [
        {
          key: 'US',
        } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField,
        {
          key: 'CA',
        } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField,
      ],
    } satisfies CreateMetadataTemplateRequestBodyFieldsField,
    {
      type: 'multiSelect' as CreateMetadataTemplateRequestBodyFieldsTypeField,
      key: 'sports',
      displayName: 'sports',
      options: [
        {
          key: 'basketball',
        } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField,
        {
          key: 'football',
        } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField,
        {
          key: 'tennis',
        } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField,
      ],
    } satisfies CreateMetadataTemplateRequestBodyFieldsField,
  ],
} satisfies CreateMetadataTemplateRequestBody);
Python v10
client.metadata_templates.create_metadata_template(
    "enterprise",
    template_key,
    template_key=template_key,
    fields=[
        CreateMetadataTemplateFields(
            type=CreateMetadataTemplateFieldsTypeField.STRING,
            key="testName",
            display_name="testName",
        ),
        CreateMetadataTemplateFields(
            type=CreateMetadataTemplateFieldsTypeField.FLOAT,
            key="age",
            display_name="age",
        ),
        CreateMetadataTemplateFields(
            type=CreateMetadataTemplateFieldsTypeField.DATE,
            key="birthDate",
            display_name="birthDate",
        ),
        CreateMetadataTemplateFields(
            type=CreateMetadataTemplateFieldsTypeField.ENUM,
            key="countryCode",
            display_name="countryCode",
            options=[
                CreateMetadataTemplateFieldsOptionsField(key="US"),
                CreateMetadataTemplateFieldsOptionsField(key="CA"),
            ],
        ),
        CreateMetadataTemplateFields(
            type=CreateMetadataTemplateFieldsTypeField.MULTISELECT,
            key="sports",
            display_name="sports",
            options=[
                CreateMetadataTemplateFieldsOptionsField(key="basketball"),
                CreateMetadataTemplateFieldsOptionsField(key="football"),
                CreateMetadataTemplateFieldsOptionsField(key="tennis"),
            ],
        ),
    ],
)
.NET v10
await client.MetadataTemplates.CreateMetadataTemplateAsync(requestBody: new CreateMetadataTemplateRequestBody(scope: "enterprise", displayName: templateKey) { TemplateKey = templateKey, Fields = Array.AsReadOnly(new [] {new CreateMetadataTemplateRequestBodyFieldsField(type: CreateMetadataTemplateRequestBodyFieldsTypeField.String, key: "testName", displayName: "testName"),new CreateMetadataTemplateRequestBodyFieldsField(type: CreateMetadataTemplateRequestBodyFieldsTypeField.Float, key: "age", displayName: "age"),new CreateMetadataTemplateRequestBodyFieldsField(type: CreateMetadataTemplateRequestBodyFieldsTypeField.Date, key: "birthDate", displayName: "birthDate"),new CreateMetadataTemplateRequestBodyFieldsField(type: CreateMetadataTemplateRequestBodyFieldsTypeField.Enum, key: "countryCode", displayName: "countryCode") { Options = Array.AsReadOnly(new [] {new CreateMetadataTemplateRequestBodyFieldsOptionsField(key: "US"),new CreateMetadataTemplateRequestBodyFieldsOptionsField(key: "CA")}) },new CreateMetadataTemplateRequestBodyFieldsField(type: CreateMetadataTemplateRequestBodyFieldsTypeField.MultiSelect, key: "sports", displayName: "sports") { Options = Array.AsReadOnly(new [] {new CreateMetadataTemplateRequestBodyFieldsOptionsField(key: "basketball"),new CreateMetadataTemplateRequestBodyFieldsOptionsField(key: "football"),new CreateMetadataTemplateRequestBodyFieldsOptionsField(key: "tennis")}) }}) });
Swift v10
try await client.metadataTemplates.createMetadataTemplate(requestBody: CreateMetadataTemplateRequestBody(scope: "enterprise", displayName: templateKey, templateKey: templateKey, fields: [CreateMetadataTemplateRequestBodyFieldsField(type: CreateMetadataTemplateRequestBodyFieldsTypeField.string, key: "testName", displayName: "testName"), CreateMetadataTemplateRequestBodyFieldsField(type: CreateMetadataTemplateRequestBodyFieldsTypeField.float, key: "age", displayName: "age"), CreateMetadataTemplateRequestBodyFieldsField(type: CreateMetadataTemplateRequestBodyFieldsTypeField.date, key: "birthDate", displayName: "birthDate"), CreateMetadataTemplateRequestBodyFieldsField(type: CreateMetadataTemplateRequestBodyFieldsTypeField.enum_, key: "countryCode", displayName: "countryCode", options: [CreateMetadataTemplateRequestBodyFieldsOptionsField(key: "US"), CreateMetadataTemplateRequestBodyFieldsOptionsField(key: "CA")]), CreateMetadataTemplateRequestBodyFieldsField(type: CreateMetadataTemplateRequestBodyFieldsTypeField.multiSelect, key: "sports", displayName: "sports", options: [CreateMetadataTemplateRequestBodyFieldsOptionsField(key: "basketball"), CreateMetadataTemplateRequestBodyFieldsOptionsField(key: "football"), CreateMetadataTemplateRequestBodyFieldsOptionsField(key: "tennis")])]))
Java v10
client.getMetadataTemplates().createMetadataTemplate(new CreateMetadataTemplateRequestBody.Builder("enterprise", templateKey).templateKey(templateKey).fields(Arrays.asList(new CreateMetadataTemplateRequestBodyFieldsField(CreateMetadataTemplateRequestBodyFieldsTypeField.STRING, "testName", "testName"), new CreateMetadataTemplateRequestBodyFieldsField(CreateMetadataTemplateRequestBodyFieldsTypeField.FLOAT, "age", "age"), new CreateMetadataTemplateRequestBodyFieldsField(CreateMetadataTemplateRequestBodyFieldsTypeField.DATE, "birthDate", "birthDate"), new CreateMetadataTemplateRequestBodyFieldsField.Builder(CreateMetadataTemplateRequestBodyFieldsTypeField.ENUM, "countryCode", "countryCode").options(Arrays.asList(new CreateMetadataTemplateRequestBodyFieldsOptionsField("US"), new CreateMetadataTemplateRequestBodyFieldsOptionsField("CA"))).build(), new CreateMetadataTemplateRequestBodyFieldsField.Builder(CreateMetadataTemplateRequestBodyFieldsTypeField.MULTISELECT, "sports", "sports").options(Arrays.asList(new CreateMetadataTemplateRequestBodyFieldsOptionsField("basketball"), new CreateMetadataTemplateRequestBodyFieldsOptionsField("football"), new CreateMetadataTemplateRequestBodyFieldsOptionsField("tennis"))).build())).build())
.NET v6
await client.MetadataTemplates.CreateMetadataTemplateAsync(requestBody: new CreateMetadataTemplateRequestBody(scope: "enterprise", displayName: templateKey) { TemplateKey = templateKey, Fields = Array.AsReadOnly(new [] {new CreateMetadataTemplateRequestBodyFieldsField(type: CreateMetadataTemplateRequestBodyFieldsTypeField.String, key: "testName", displayName: "testName"),new CreateMetadataTemplateRequestBodyFieldsField(type: CreateMetadataTemplateRequestBodyFieldsTypeField.Float, key: "age", displayName: "age"),new CreateMetadataTemplateRequestBodyFieldsField(type: CreateMetadataTemplateRequestBodyFieldsTypeField.Date, key: "birthDate", displayName: "birthDate"),new CreateMetadataTemplateRequestBodyFieldsField(type: CreateMetadataTemplateRequestBodyFieldsTypeField.Enum, key: "countryCode", displayName: "countryCode") { Options = Array.AsReadOnly(new [] {new CreateMetadataTemplateRequestBodyFieldsOptionsField(key: "US"),new CreateMetadataTemplateRequestBodyFieldsOptionsField(key: "CA")}) },new CreateMetadataTemplateRequestBodyFieldsField(type: CreateMetadataTemplateRequestBodyFieldsTypeField.MultiSelect, key: "sports", displayName: "sports") { Options = Array.AsReadOnly(new [] {new CreateMetadataTemplateRequestBodyFieldsOptionsField(key: "basketball"),new CreateMetadataTemplateRequestBodyFieldsOptionsField(key: "football"),new CreateMetadataTemplateRequestBodyFieldsOptionsField(key: "tennis")}) }}) });
Node v4
await client.metadataTemplates.createMetadataTemplate({
  scope: 'enterprise',
  displayName: templateKey,
  templateKey: templateKey,
  fields: [
    {
      type: 'string' as CreateMetadataTemplateRequestBodyFieldsTypeField,
      key: 'testName',
      displayName: 'testName',
    } satisfies CreateMetadataTemplateRequestBodyFieldsField,
    {
      type: 'float' as CreateMetadataTemplateRequestBodyFieldsTypeField,
      key: 'age',
      displayName: 'age',
    } satisfies CreateMetadataTemplateRequestBodyFieldsField,
    {
      type: 'date' as CreateMetadataTemplateRequestBodyFieldsTypeField,
      key: 'birthDate',
      displayName: 'birthDate',
    } satisfies CreateMetadataTemplateRequestBodyFieldsField,
    {
      type: 'enum' as CreateMetadataTemplateRequestBodyFieldsTypeField,
      key: 'countryCode',
      displayName: 'countryCode',
      options: [
        {
          key: 'US',
        } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField,
        {
          key: 'CA',
        } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField,
      ],
    } satisfies CreateMetadataTemplateRequestBodyFieldsField,
    {
      type: 'multiSelect' as CreateMetadataTemplateRequestBodyFieldsTypeField,
      key: 'sports',
      displayName: 'sports',
      options: [
        {
          key: 'basketball',
        } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField,
        {
          key: 'football',
        } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField,
        {
          key: 'tennis',
        } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField,
      ],
    } satisfies CreateMetadataTemplateRequestBodyFieldsField,
  ],
} satisfies CreateMetadataTemplateRequestBody);

レスポンスの例

{
  "id": "58063d82-4128-7b43-bba9-92f706befcdf",
  "type": "metadata_template",
  "copyInstanceOnItemCopy": true,
  "displayName": "Product Info",
  "fields": [
    {
      "description": "The category",
      "displayName": "Category",
      "hidden": true,
      "key": "category",
      "options": [
        {
          "key": "Category 1",
          "id": "45dc2849-a4a7-40a9-a751-4a699a589190"
        }
      ],
      "type": "string",
      "id": "822227e0-47a5-921b-88a8-494760b2e6d2"
    }
  ],
  "hidden": true,
  "scope": "enterprise_123456",
  "templateKey": "productInfo"
}