schemaExtension リソースの種類 (スキーマ拡張機能)

名前空間: microsoft.graph

スキーマの拡張機能を使用すると、拡張するスキーマを定義し、厳密に型指定されたカスタム データをリソースの種類に追加できます。 カスタム データは拡張したリソースの複合型として表示されます。 スキーマ拡張機能は次のリソースの種類でサポートされています。

スキーマ拡張機能の定義を管理するには、このリソースと関連するメソッドを使用します。 拡張リソース インスタンスのスキーマ拡張データを管理するには、リソース インスタンスの管理に使用するのと同じ REST 要求を使用します。 カスタム データのグループへの追加方法については、スキーマ拡張機能の例を参照してください。

スキーマ拡張機能の制限を含む Microsoft Graph 機能拡張の詳細については、「拡張機能を使用してリソースにカスタム プロパティを追加する」を参照してください。

メソッド

メソッド 戻り値の型 説明
Create schemaExtension スキーマ拡張機能の定義を作成します。
List schemaExtension 使用可能な schemaExtension の定義とそのプロパティを一覧表示します。
Get schemaExtension 特定の schemaExtension 定義のプロパティを読み取ります。
Update schemaExtension schemaExtension 定義を更新します。
Delete なし schemaExtension 定義を削除します。

プロパティ

プロパティ 説明
description String スキーマ拡張機能の説明。$filter (eq) をサポートしています。
id String スキーマ拡張機能の定義の一意の識別子。
値の割り当ては、以下の 2 方法のいずれかで行うことができます。
  • 確認されたドメインの内の 1 つの名前とスキーマ拡張機能の名前を連結して、{domainName}_{schemaName} という形式の一意の文字列を形成します。たとえば、contoso_mySchema です。
  • スキーマ名を指定し、Microsoft Graph がそのスキーマ名を使用して id 割り当てを完了するには、次の形式を使用します。ext{8-random-alphanumeric-chars}_{schema-name}。たとえば、extkvbmkofy_mySchema です。
このプロパティは、作成後に変更することはできません。$filter (eq) をサポートします。注: ID は A から Z の間のアルファベットで始めることをお勧めします。これは、整数で始まる ID ではクエリ機能が制限される可能性があるためです。
owner String スキーマ拡張機能の所有者であるアプリケーションの appId です。 このプロパティは作成時に指定して所有者を設定できます。 指定しない場合、呼び出し元のアプリケーションの appId が所有者として設定されます。 どちらの場合も、サインインしたユーザーがアプリケーションの所有者でなければなりません。 たとえば、Graph エクスプローラーを使用して新しいスキーマ拡張機能の定義を作成する場合は、所有者プロパティを指定する 必要があります。 設定すると、このプロパティは読み取り専用で、変更することはできません。 $filter (eq) をサポートしています。
properties extensionSchemaProperty コレクション スキーマ拡張機能の定義を構成するプロパティ名と種類のコレクション。
status String スキーマ拡張機能のライフサイクル状態。 考えられる状態は、InDevelopmentAvailable、および Deprecated です。 作成時に自動で InDevelopment に設定されます。 可能な状態遷移と動作の詳細については、「スキーマ拡張機能のライフサイクル」を参照してください。 $filter (eq) をサポートしています。
targetTypes String コレクション スキーマ拡張機能に適用できる (拡張機能をサポートできる) 一連の Microsoft Graph の種類。 administrativeUnit連絡先デバイスイベントグループメッセージ組織投稿todoTasktodoTaskList、または ユーザー から選択します。

スキーマ拡張機能のライフサイクル

アプリによってスキーマ拡張機能定義が作成されると、そのアプリがスキーマ拡張機能の所有者としてマークされます。

所有者アプリは、ステータス プロパティで PATCH 操作を使用して、拡張機能をさまざまな状態のライフサイクル間で移動できます。所有者アプリは現在の状態に応じて、拡張機能を更新または削除することができます。スキーマ拡張機能の更新は常に、付加的で中断を必要としない更新でなければなりません。

State ライフ サイクル状態の動作
InDevelopment
  • 作成後の初期状態です。所有者アプリは引き続きスキーマ拡張機能を開発しています。
  • この状態で、所有者のアプリが登録されているディレクトリと同じディレクトリにあるアプリは、このスキーマの定義を持つリソース インスタンスを拡張することができます (アプリにそのリソースへのアクセス許可がある場合)。
  • マルチテナントの所有者アプリの場合、ホーム ディレクトリとは異なるディレクトリにある所有者アプリのインスタンスのみが、このスキーマ定義を使用してリソース インスタンスを (アプリにそのリソースに対するアクセス許可がある場合) 拡張でき、または拡張機能データを読み取ることができます。
  • 所有者アプリのみで、拡張機能の定義に追加の変更を加えて更新することができます。
  • 所有者アプリのみが拡張機能の定義を削除できます。
  • 所有者アプリは拡張機能を InDevelopment から Available の状態に移行できます。
Available
  • スキーマ拡張機能は、テナント内のすべてのアプリで利用できます。
  • 所有者アプリで拡張機能を Available に設定した後、どのアプリでも拡張機能で指定されているこれらのリソースの種類のインスタンスにカスタム データを追加できます (アプリにそのリソースへのアクセス許可がある場合)。 アプリは、新しいインスタンスの作成時または既存のインスタンスの更新時にカスタム データを割り当てることができます。
  • 所有者アプリのみで、拡張機能の定義に追加の変更を加えて更新することができます。 この状態では、どのアプリでも拡張機能の定義を削除することはできません。
  • 所有者アプリは、スキーマ拡張機能を Available から Deprecated 状態に移行できます。
Deprecated
  • スキーマ拡張機能の定義の読み取りまたは変更はできなくなります。
  • どのアプリも、新しいプロパティを表示、更新、追加したり、拡張機能を削除したりすることはできません。
  • ただし、既存の拡張機能の プロパティ値 の読み取り、更新、または削除は引き続き行えます。

注: 他のテナントの他の開発者によって作成されたスキーマ拡張定義 (Available としてマークされています) は、すべての開発者に表示されます (すべてのシナリオ拡張が一覧表示されます)。 これは、テナント固有のデータだけを返す他の API とは異なります。 一方、スキーマ拡張機能の定義に基づいて作成された拡張データはテナント固有のものであり、明示的に許可されたアプリのみがアクセスできます。

JSON 表記

以下は、リソースの JSON 表記です。

{
  "description": "String",
  "id": "String (identifier)",
  "owner": "String",
  "properties": [{"@odata.type": "microsoft.graph.extensionSchemaProperty"}],
  "status": "String",
  "targetTypes": ["String"]
}

関連項目