更新 customSecurityAttributeDefinition
本文内容
命名空间:microsoft.graph
重要
Microsoft Graph版本下的 /beta API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
更新 customSecurityAttributeDefinition 对象 的属性。
Permissions
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限 。
权限类型
权限(从最低特权到最高特权)
委派(工作或学校帐户)
CustomSecAttributeDefinition.ReadWrite.All
委派(个人 Microsoft 帐户)
不支持。
应用程序
CustomSecAttributeDefinition.ReadWrite.All
还必须为登录用户分配属性定义管理员 目录角色 。 默认情况下,全局管理员和其他管理员角色没有读取、定义或分配自定义安全属性的权限。
HTTP 请求
PATCH /directory/customSecurityAttributeDefinitions/{customSecurityAttributeDefinitionId}
名称
说明
Authorization
Bearer {token}。必需。
Content-Type
application/json. Required.
OData-Version
4.01. 可选。
备注
若要更新自定义安全属性的预定义值,必须添加 OData-Version 标头,并为其分配值 4.01。
请求正文
在请求正文中,仅 提供应更新的属性的值。未包含在请求正文中的现有属性将保留其以前的值或根据对其他属性值的更改重新计算。
下表指定可更新的属性。
属性
类型
说明
说明
String
自定义安全属性的说明。 可最多为 128 个字符,并且包含 Unicode 字符。 可选。
状态
String
指定自定义安全属性是处于活动状态还是已停用。 可接受的值为 和 Available Deprecated。 可选。
usePreDefinedValuesOnly
布尔
指示是否只能将预定义值分配给自定义安全属性。 如果设置为 false,则允许自由格式的值。 可以从 true 更改为 false,但不能从 false 更改为 true。 如果 type 设置为 Boolean, usePreDefinedValuesOnly 则不能设置为 true。 可选。
响应
如果成功,此方法返回 204 No Content 响应代码。
示例
示例 1:更新自定义安全属性
下面的示例更新自定义安全属性定义的说明。
属性集:Engineering
属性:ProjectDate
请求
PATCH https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions/Engineering_ProjectDate
Content-Type: application/json
{
"description": "Target completion date (YYYY/MM/DD)",
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var customSecurityAttributeDefinition = new CustomSecurityAttributeDefinition
{
Description = "Target completion date (YYYY/MM/DD)"
};
await graphClient.Directory.CustomSecurityAttributeDefinitions["{customSecurityAttributeDefinition-id}"]
.Request()
.UpdateAsync(customSecurityAttributeDefinition);
const options = {
authProvider,
};
const client = Client.init(options);
const customSecurityAttributeDefinition = {
description: 'Target completion date (YYYY/MM/DD)',
};
await client.api('/directory/customSecurityAttributeDefinitions/Engineering_ProjectDate')
.version('beta')
.update(customSecurityAttributeDefinition);
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/beta/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/directory/customSecurityAttributeDefinitions/Engineering_ProjectDate"]]];
[urlRequest setHTTPMethod:@"PATCH"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphCustomSecurityAttributeDefinition *customSecurityAttributeDefinition = [[MSGraphCustomSecurityAttributeDefinition alloc] init];
[customSecurityAttributeDefinition setDescription:@"Target completion date (YYYY/MM/DD)"];
NSError *error;
NSData *customSecurityAttributeDefinitionData = [customSecurityAttributeDefinition getSerializedDataWithError:&error];
[urlRequest setHTTPBody:customSecurityAttributeDefinitionData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
CustomSecurityAttributeDefinition customSecurityAttributeDefinition = new CustomSecurityAttributeDefinition();
customSecurityAttributeDefinition.description = "Target completion date (YYYY/MM/DD)";
graphClient.directory().customSecurityAttributeDefinitions("Engineering_ProjectDate")
.buildRequest()
.patch(customSecurityAttributeDefinition);
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewCustomSecurityAttributeDefinition()
description := "Target completion date (YYYY/MM/DD)"
requestBody.SetDescription(&description)
customSecurityAttributeDefinitionId := "customSecurityAttributeDefinition-id"
graphClient.Directory().CustomSecurityAttributeDefinitionsById(&customSecurityAttributeDefinitionId).Patch(requestBody)
Import-Module Microsoft.Graph.Identity.DirectoryManagement
$params = @{
Description = "Target completion date (YYYY/MM/DD)"
}
Update-MgDirectoryCustomSecurityAttributeDefinition -CustomSecurityAttributeDefinitionId $customSecurityAttributeDefinitionId -BodyParameter $params
响应
HTTP/1.1 204 No Content
示例 2:更新自定义安全属性的预定义值
以下示例更新现有预定义值的状态,并添加自定义安全属性定义的新预定义值。
属性集:Engineering
属性:Project
属性数据类型:字符串集合
更新预定义值: Baker
新的预定义值: Skagit
备注
对于此请求,您必须添加 OData-Version 标头,并为其分配值 4.01。
请求
PATCH https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions/Engineering_Project
Content-Type: application/json
OData-Version: 4.01
{
"allowedValues@delta": [
{
"id": "Baker",
"isActive": false
},
{
"id": "Skagit",
"isActive": true
}
]
}
响应
HTTP/1.1 204 No Content
示例 3:停用自定义安全属性
以下示例停用自定义安全属性定义。
属性集:Engineering
属性:Project
请求
PATCH https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions/Engineering_Project
Content-Type: application/json
{
"status": "Deprecated"
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var customSecurityAttributeDefinition = new CustomSecurityAttributeDefinition
{
Status = "Deprecated"
};
await graphClient.Directory.CustomSecurityAttributeDefinitions["{customSecurityAttributeDefinition-id}"]
.Request()
.UpdateAsync(customSecurityAttributeDefinition);
const options = {
authProvider,
};
const client = Client.init(options);
const customSecurityAttributeDefinition = {
status: 'Deprecated'
};
await client.api('/directory/customSecurityAttributeDefinitions/Engineering_Project')
.version('beta')
.update(customSecurityAttributeDefinition);
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/beta/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/directory/customSecurityAttributeDefinitions/Engineering_Project"]]];
[urlRequest setHTTPMethod:@"PATCH"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphCustomSecurityAttributeDefinition *customSecurityAttributeDefinition = [[MSGraphCustomSecurityAttributeDefinition alloc] init];
[customSecurityAttributeDefinition setStatus:@"Deprecated"];
NSError *error;
NSData *customSecurityAttributeDefinitionData = [customSecurityAttributeDefinition getSerializedDataWithError:&error];
[urlRequest setHTTPBody:customSecurityAttributeDefinitionData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
CustomSecurityAttributeDefinition customSecurityAttributeDefinition = new CustomSecurityAttributeDefinition();
customSecurityAttributeDefinition.status = "Deprecated";
graphClient.directory().customSecurityAttributeDefinitions("Engineering_Project")
.buildRequest()
.patch(customSecurityAttributeDefinition);
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewCustomSecurityAttributeDefinition()
status := "Deprecated"
requestBody.SetStatus(&status)
customSecurityAttributeDefinitionId := "customSecurityAttributeDefinition-id"
graphClient.Directory().CustomSecurityAttributeDefinitionsById(&customSecurityAttributeDefinitionId).Patch(requestBody)
Import-Module Microsoft.Graph.Identity.DirectoryManagement
$params = @{
Status = "Deprecated"
}
Update-MgDirectoryCustomSecurityAttributeDefinition -CustomSecurityAttributeDefinitionId $customSecurityAttributeDefinitionId -BodyParameter $params
响应
HTTP/1.1 204 No Content