schemaExtension を更新する
[アーティクル]
05/10/2022
3 人の共同作成者
この記事の内容
名前空間: microsoft.graph
指定した schemaExtension の定義のプロパティを更新します。 拡張機能の追加更新は、拡張機能がInDevelopment``Available状態である場合にのみ行うことができます。 つまり、カスタム プロパティまたはターゲット リソースの種類を定義から削除することはできませんが、新しいカスタム プロパティを追加して拡張機能の説明を変更できます。
更新プログラムは、拡張機能の targetTypes プロパティに含まれるすべてのリソースに適用されます。 これらのリソースは、 サポートされているリソースの種類の 1 つです 。
委任されたフローの場合、サインインしているユーザーは、拡張機能の 所有者 プロパティがサインインしているユーザーが所有するアプリケーションの appId に設定されている限り、スキーマ拡張機能を更新できます。 そのアプリケーションは、最初に拡張機能を作成したアプリケーション、またはサインインしているユーザーが所有するその他のアプリケーションを指定できます。
所有者 プロパティのこの条件により、サインインしているユーザーは、Microsoft Graph エクスプローラーなど、所有していない他のアプリケーションを使用して更新を行うことができます。 Graph エクスプローラーを使用して schemaExtension リソースを更新する場合は、PATCH 要求本文に 所有者 プロパティを含めます。 詳細については、「Microsoft Graphに関する既知の問題」 の「拡張機能 」セクションを参照してください。
アクセス許可
この API を呼び出すには、次のいずれかのアクセス許可が必要です。アクセス許可の選択方法などの詳細については、「アクセス許可 」を参照してください。
アクセス許可の種類
アクセス許可 (特権の小さいものから大きいものへ)
委任 (職場または学校のアカウント)
Application.ReadWrite.All
委任 (個人用 Microsoft アカウント)
サポートされていません。
アプリケーション
Application.ReadWrite.All と Directory.ReadWrite.All
HTTP 要求
PATCH /schemaExtensions/{id}
名前
説明
Authorization
ベアラー {token}。必須。
Content-Type
application/json
要求本文
要求本文で、更新する関連フィールドの値を指定します。要求本文に含まれない既存のプロパティは、以前の値のままになるか、他のプロパティ値の変化に基づいて再計算されます。最適なパフォーマンスを得るためには、変更されていない既存の値を含めないでください。
プロパティ
種類
説明
description
String
スキーマ拡張機能の説明。
properties
extensionSchemaProperty コレクション
スキーマ拡張機能の定義を構成するプロパティ名と種類のコレクション。 加法変更のみが許可されます。
status
String
スキーマ拡張機能のライフサイクル状態。 作成時の初期状態は InDevelopment. 可能な状態の切り替えは、次の間InDevelopment``Availableで行いますAvailable``Deprecated。
targetTypes
String コレクション
スキーマ拡張機能に適用できる (拡張機能をサポートできる) 一連の Microsoft Graph の種類。 加法変更のみが許可されます。
応答
成功した場合、このメソッドは 204 No Content 応答コードを返します。 所有していないアプリケーションからこの要求を実行しようとすると ( 所有者プロパティを 所有するアプリケーションの appId に設定せずに) 応答コードが 403 Forbidden 返されます。
例
要求
要求の例を次に示します。 所有していないアプリケーションからの要求を実行している場合は、 owner プロパティを含める必要があります。 この場合は、 所有者 プロパティを、所有するアプリケーションの appId に 設定します。
PATCH https://graph.microsoft.com/v1.0/schemaExtensions/exto6x7sfft_courses
Content-type: application/json
{
"owner": "ef4cb9a8-97c3-4ca7-854b-5cb5ced376fa",
"properties": [
{
"name": "courseId",
"type": "Integer"
},
{
"name": "courseName",
"type": "String"
},
{
"name": "courseType",
"type": "String"
},
{
"name": "courseSupervisors",
"type": "String"
}
]
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var user = new User
{
AdditionalData = new Dictionary<string, object>()
{
{"ext55gb1l09_msLearnCourses", "{\"courseType\":\"Admin\"}"}
}
};
await graphClient.Users["{user-id}"]
.Request()
.UpdateAsync(user);
SDK をプロジェクトに追加し、authProvider インスタンスを作成する 方法の詳細については、SDK のドキュメントを参照してください 。
const options = {
authProvider,
};
const client = Client.init(options);
const user = {
ext55gb1l09_msLearnCourses: {
courseType: 'Admin'
}
};
await client.api('/users/4562bcc8-c436-4f95-b7c0-4f8ce89dca5e')
.update(user);
SDK をプロジェクトに追加し、authProvider インスタンスを作成する 方法の詳細については、SDK のドキュメントを参照してください 。
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/schemaExtensions/exto6x7sfft_courses"]]];
[urlRequest setHTTPMethod:@"PATCH"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphSchemaExtension *schemaExtension = [[MSGraphSchemaExtension alloc] init];
[schemaExtension setOwner:@"ef4cb9a8-97c3-4ca7-854b-5cb5ced376fa"];
NSMutableArray *propertiesList = [[NSMutableArray alloc] init];
MSGraphExtensionSchemaProperty *properties = [[MSGraphExtensionSchemaProperty alloc] init];
[properties setName:@"courseId"];
[properties setType:@"Integer"];
[propertiesList addObject: properties];
MSGraphExtensionSchemaProperty *properties = [[MSGraphExtensionSchemaProperty alloc] init];
[properties setName:@"courseName"];
[properties setType:@"String"];
[propertiesList addObject: properties];
MSGraphExtensionSchemaProperty *properties = [[MSGraphExtensionSchemaProperty alloc] init];
[properties setName:@"courseType"];
[properties setType:@"String"];
[propertiesList addObject: properties];
MSGraphExtensionSchemaProperty *properties = [[MSGraphExtensionSchemaProperty alloc] init];
[properties setName:@"courseSupervisors"];
[properties setType:@"String"];
[propertiesList addObject: properties];
[schemaExtension setProperties:propertiesList];
NSError *error;
NSData *schemaExtensionData = [schemaExtension getSerializedDataWithError:&error];
[urlRequest setHTTPBody:schemaExtensionData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
SDK をプロジェクトに追加し、authProvider インスタンスを作成する 方法の詳細については、SDK のドキュメントを参照してください 。
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
SchemaExtension schemaExtension = new SchemaExtension();
schemaExtension.owner = "ef4cb9a8-97c3-4ca7-854b-5cb5ced376fa";
LinkedList<ExtensionSchemaProperty> propertiesList = new LinkedList<ExtensionSchemaProperty>();
ExtensionSchemaProperty properties = new ExtensionSchemaProperty();
properties.name = "courseId";
properties.type = "Integer";
propertiesList.add(properties);
ExtensionSchemaProperty properties1 = new ExtensionSchemaProperty();
properties1.name = "courseName";
properties1.type = "String";
propertiesList.add(properties1);
ExtensionSchemaProperty properties2 = new ExtensionSchemaProperty();
properties2.name = "courseType";
properties2.type = "String";
propertiesList.add(properties2);
ExtensionSchemaProperty properties3 = new ExtensionSchemaProperty();
properties3.name = "courseSupervisors";
properties3.type = "String";
propertiesList.add(properties3);
schemaExtension.properties = propertiesList;
graphClient.schemaExtensions("exto6x7sfft_courses")
.buildRequest()
.patch(schemaExtension);
SDK をプロジェクトに追加し、authProvider インスタンスを作成する 方法の詳細については、SDK のドキュメントを参照してください 。
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewSchemaExtension()
owner := "ef4cb9a8-97c3-4ca7-854b-5cb5ced376fa"
requestBody.SetOwner(&owner)
requestBody.SetProperties( []ExtensionSchemaProperty {
msgraphsdk.NewExtensionSchemaProperty(),
SetAdditionalData(map[string]interface{}{
"name": "courseId",
"type": "Integer",
}
msgraphsdk.NewExtensionSchemaProperty(),
SetAdditionalData(map[string]interface{}{
"name": "courseName",
"type": "String",
}
msgraphsdk.NewExtensionSchemaProperty(),
SetAdditionalData(map[string]interface{}{
"name": "courseType",
"type": "String",
}
msgraphsdk.NewExtensionSchemaProperty(),
SetAdditionalData(map[string]interface{}{
"name": "courseSupervisors",
"type": "String",
}
}
schemaExtensionId := "schemaExtension-id"
graphClient.SchemaExtensionsById(&schemaExtensionId).Patch(requestBody)
SDK をプロジェクトに追加し、authProvider インスタンスを作成する 方法の詳細については、SDK のドキュメントを参照してください 。
応答
HTTP/1.1 204 No Content
関連項目