Тип ресурса schemaExtension (расширения схемы)

Пространство имен: microsoft.graph

Важно!

API в версии /beta Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте выбор версии .

Расширения схемы позволяют определить схему для расширения и добавления строго типизированных пользовательских данных в тип ресурса. Пользовательские данные отображаются в расширенном ресурсе как сложный тип. Расширения схемы поддерживаются в ресурсах указанных ниже типов.

Используйте этот ресурс и связанные методы для управления определениями расширений схемы. Для управления данными расширения схемы в экземпляре расширенного ресурса используйте тот же запрос REST, который используется для управления экземпляром ресурса. Сведения о том, как добавлять пользовательские данные в группы, см. в примере расширения схемы.

Дополнительные сведения о расширяемости Microsoft Graph, включая ограничения для расширений схемы, см. в разделе "Добавление настраиваемых свойств к ресурсам с помощью расширений".

Методы

Метод Возвращаемый тип Описание
Создание schemaExtension Создание определения расширения схемы.
Перечисление schemaExtension Создание списка доступных определений schemaExtension и их свойств.
Получение schemaExtension Получение свойств указанного определения schemaExtension.
Обновление schemaExtension Обновление определения schemaExtension.
Удаление Нет Удаление определения schemaExtension.

Свойства

Свойство Тип Описание
description String Описание расширения схемы. Поддерживает $filter (eq).
id String Уникальный идентификатор для определения расширения схемы.
Значение можно присвоить одним из двух способов:
  • Сцепите имя одного из ваших проверенных доменов с именем расширения схемы, чтобы создать уникальную строку такого формата: {доменноеИмя}_{имяСхемы}. Например, contoso_mySchema.
  • Укажите имя схемы и предоставьте Microsoft Graph возможность использовать его для назначения id в таком формате: ext{8-случайных-букв-или-цифр}_{имя-схемы}. Например, extkvbmkofy_mySchema.
После создания это свойство невозможно изменить. Поддерживает $filter (eq).

Примечание: Рекомендуется, чтобы ваш ИД начинался с буквы алфавита от А до Я, так как возможности запроса могут быть ограничены для идентификаторов, начинающихся с целых чисел.
owner String Идентификатор appId приложения, которое является владельцем расширения схемы. Это свойство можно указать при создании, чтобы задать владельца. Если оно не указано, то в качестве владельца будет задано вызывающее приложение appId. В любом случае, пользователь, выполнивший вход в систему, должен быть владельцем приложения. Таким образом, например, при создании определения расширения схемы с помощью песочницы Graph вам потребуется указать свойство владельца. После задания свойства оно будет доступно только для чтения, и вам не удастся изменить его. Поддерживает $filter (eq).
properties Коллекция extensionSchemaProperty Коллекция имен и типов свойств, составляющих определение расширения схемы.
status String Состояние жизненного цикла расширения схемы. Возможные состояния: InDevelopment, Available и Deprecated. При создании свойство автоматически получает значение InDevelopment. Дополнительные сведения о возможных переходах и поведении состояний см. в статье о жизненном цикле расширений схемы. Поддерживает $filter (eq).
targetTypes Коллекция String Набор типов Microsoft Graph (поддерживающих расширения), к которым можно применить это расширение схемы. Выберите из administrativeUnit, contact, device, event, group, message, organization, post, todoTask, todoTaskList или пользователя.

Жизненный цикл расширений схемы

Когда приложение создает определение расширения схемы, оно помечается как владелец такого расширения.

Приложение-владелец может перемещать расширение из одного состояния в другое, используя операцию PATCH для свойства status. В зависимости от текущего состояния приложение-владелец может обновлять или удалять расширение. Любые обновления расширения схемы должны всегда быть только дополнительными и не прерывающими.

Состояние Поведение в состоянии жизненного цикла
InDevelopment
  • Начальное состояние после создания. Идет разработка расширения схемы, которую выполняет приложение-владелец.
  • В этом состоянии любое приложение в том же каталоге, где зарегистрировано приложение-владелец, может расширить экземпляры ресурсов с помощью этого определения схемы (если у приложения есть разрешения на этот ресурс).
  • Для мультитенантного приложения-владельца только экземпляр приложения-владельца, который содержится в другом каталоге домашнего каталога, может расширить экземпляры ресурсов с помощью этого определения схемы (если у приложения есть разрешения на этот ресурс) или прочитать данные расширения.
  • Только приложение-владелец может добавлять изменения в определение расширения.
  • Только приложение-владелец может удалить определение расширения.
  • Приложение-владелец может заменить состояние InDevelopment расширения на 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"]
}

См. также