创建部署
命名空间:microsoft.graph.windowsUpdates
重要
Microsoft Graph版本下的 /beta API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
创建新的 部署 对象。
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
| 权限类型 |
权限(从最低特权到最高特权) |
| 委派(工作或学校帐户) |
WindowsUpdates.ReadWrite.All |
| 委派(个人 Microsoft 帐户) |
不支持。 |
| 应用程序 |
WindowsUpdates.ReadWrite.All |
HTTP 请求
POST /admin/windows/updates/deployments
| 名称 |
说明 |
| Authorization |
Bearer {token}。必需。 |
| Content-Type |
application/json. Required. |
请求正文
在请求正文中,提供部署对象的 JSON 表示 形式。
下表显示创建部署时所需的 属性。
响应
如果成功,此方法在响应 201 Created 正文中返回 响应代码和部署对象。
示例
请求
POST https://graph.microsoft.com/beta/admin/windows/updates/deployments
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.windowsUpdates.deployment",
"content": {
"@odata.type": "microsoft.graph.windowsUpdates.featureUpdateReference",
"version": "20H2"
},
"settings": {
"@odata.type": "microsoft.graph.windowsUpdates.windowsDeploymentSettings",
"rollout": {
"devicesPerOffer": 100
},
"monitoring": {
"monitoringRules": [
{
"@odata.type": "#microsoft.graph.windowsUpdates.monitoringRule",
"signal": "rollback",
"threshold": 5,
"action": "pauseDeployment"
}
]
}
}
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var deployment = new Microsoft.Graph.WindowsUpdates.Deployment
{
Content = new FeatureUpdateReference
{
Version = "20H2"
},
Settings = new WindowsDeploymentSettings
{
Rollout = new Microsoft.Graph.WindowsUpdates.RolloutSettings
{
DevicesPerOffer = 100
},
Monitoring = new Microsoft.Graph.WindowsUpdates.MonitoringSettings
{
MonitoringRules = new List<Microsoft.Graph.WindowsUpdates.MonitoringRule>()
{
new Microsoft.Graph.WindowsUpdates.MonitoringRule
{
Signal = Microsoft.Graph.WindowsUpdates.MonitoringSignal.Rollback,
Threshold = 5,
Action = Microsoft.Graph.WindowsUpdates.MonitoringAction.PauseDeployment
}
}
}
}
};
await graphClient.Admin.Windows.Updates.Deployments
.Request()
.AddAsync(deployment);
const options = {
authProvider,
};
const client = Client.init(options);
const deployment = {
'@odata.type': '#microsoft.graph.windowsUpdates.deployment',
content: {
'@odata.type': 'microsoft.graph.windowsUpdates.featureUpdateReference',
version: '20H2'
},
settings: {
'@odata.type': 'microsoft.graph.windowsUpdates.windowsDeploymentSettings',
rollout: {
devicesPerOffer: 100
},
monitoring: {
monitoringRules: [
{
'@odata.type': '#microsoft.graph.windowsUpdates.monitoringRule',
signal: 'rollback',
threshold: 5,
action: 'pauseDeployment'
}
]
}
}
};
await client.api('/admin/windows/updates/deployments')
.version('beta')
.post(deployment);
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/beta/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/admin/windows/updates/deployments"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphWindowsUpdatesDeployment *deployment = [[MSGraphWindowsUpdatesDeployment alloc] init];
MSGraphWindowsUpdatesDeployableContent *content = [[MSGraphWindowsUpdatesDeployableContent alloc] init];
[content setVersion:@"20H2"];
[deployment setContent:content];
MSGraphWindowsUpdatesDeploymentSettings *settings = [[MSGraphWindowsUpdatesDeploymentSettings alloc] init];
MSGraphWindowsUpdatesRolloutSettings *rollout = [[MSGraphWindowsUpdatesRolloutSettings alloc] init];
[rollout setDevicesPerOffer: 100];
[settings setRollout:rollout];
MSGraphWindowsUpdatesMonitoringSettings *monitoring = [[MSGraphWindowsUpdatesMonitoringSettings alloc] init];
NSMutableArray *monitoringRulesList = [[NSMutableArray alloc] init];
MSGraphWindowsUpdatesMonitoringRule *monitoringRules = [[MSGraphWindowsUpdatesMonitoringRule alloc] init];
[monitoringRules setSignal: [MSGraphWindowsUpdatesMonitoringSignal rollback]];
[monitoringRules setThreshold: 5];
[monitoringRules setAction: [MSGraphWindowsUpdatesMonitoringAction pauseDeployment]];
[monitoringRulesList addObject: monitoringRules];
[monitoring setMonitoringRules:monitoringRulesList];
[settings setMonitoring:monitoring];
[deployment setSettings:settings];
NSError *error;
NSData *deploymentData = [deployment getSerializedDataWithError:&error];
[urlRequest setHTTPBody:deploymentData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
Deployment deployment = new Deployment();
FeatureUpdateReference content = new FeatureUpdateReference();
content.version = "20H2";
deployment.content = content;
WindowsDeploymentSettings settings = new WindowsDeploymentSettings();
RolloutSettings rollout = new RolloutSettings();
rollout.devicesPerOffer = 100;
settings.rollout = rollout;
MonitoringSettings monitoring = new MonitoringSettings();
LinkedList<MonitoringRule> monitoringRulesList = new LinkedList<MonitoringRule>();
MonitoringRule monitoringRules = new MonitoringRule();
monitoringRules.signal = MonitoringSignal.ROLLBACK;
monitoringRules.threshold = 5;
monitoringRules.action = MonitoringAction.PAUSE_DEPLOYMENT;
monitoringRulesList.add(monitoringRules);
monitoring.monitoringRules = monitoringRulesList;
settings.monitoring = monitoring;
deployment.settings = settings;
graphClient.admin().windows().updates().deployments()
.buildRequest()
.post(deployment);
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewDeployment()
content := msgraphsdk.NewDeployableContent()
requestBody.SetContent(content)
content.SetAdditionalData(map[string]interface{}{
"@odata.type": "microsoft.graph.windowsUpdates.featureUpdateReference",
"version": "20H2",
}
settings := msgraphsdk.NewDeploymentSettings()
requestBody.SetSettings(settings)
rollout := msgraphsdk.NewRolloutSettings()
settings.SetRollout(rollout)
devicesPerOffer := int32(100)
rollout.SetDevicesPerOffer(&devicesPerOffer)
monitoring := msgraphsdk.NewMonitoringSettings()
settings.SetMonitoring(monitoring)
monitoring.SetMonitoringRules( []MonitoringRule {
msgraphsdk.NewMonitoringRule(),
signal := "rollback"
SetSignal(&signal)
threshold := int32(5)
SetThreshold(&threshold)
action := "pauseDeployment"
SetAction(&action)
SetAdditionalData(map[string]interface{}{
"@odata.type": "#microsoft.graph.windowsUpdates.monitoringRule",
}
}
settings.SetAdditionalData(map[string]interface{}{
"@odata.type": "microsoft.graph.windowsUpdates.windowsDeploymentSettings",
}
requestBody.SetAdditionalData(map[string]interface{}{
"@odata.type": "#microsoft.graph.windowsUpdates.deployment",
}
result, err := graphClient.Admin().Windows().Updates().Deployments().Post(requestBody)
Import-Module Microsoft.Graph.WindowsUpdates
$params = @{
"@odata.type" = "#microsoft.graph.windowsUpdates.deployment"
Content = @{
"@odata.type" = "microsoft.graph.windowsUpdates.featureUpdateReference"
Version = "20H2"
}
Settings = @{
"@odata.type" = "microsoft.graph.windowsUpdates.windowsDeploymentSettings"
Rollout = @{
DevicesPerOffer = 100
}
Monitoring = @{
MonitoringRules = @(
@{
"@odata.type" = "#microsoft.graph.windowsUpdates.monitoringRule"
Signal = "rollback"
Threshold = 5
Action = "pauseDeployment"
}
)
}
}
}
New-MgWindowsUpdatesDeployment -BodyParameter $params
响应
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.windowsUpdates.deployment",
"id": "b5171742-1742-b517-4217-17b5421717b5",
"state": {
"@odata.type": "microsoft.graph.windowsUpdates.deploymentState",
"value": "offering",
"reasons": [
{
"@odata.type": "microsoft.graph.windowsUpdates.deploymentStateReason",
"value": "offeringByRequest"
}
],
"requestedValue": "none",
"effectiveSinceDate": "String (timestamp)"
},
"content": {
"@odata.type": "microsoft.graph.windowsUpdates.featureUpdateReference",
"version": "20H2"
},
"settings": {
"@odata.type": "microsoft.graph.windowsUpdates.windowsDeploymentSettings",
"rollout": {
"devicesPerOffer": 100,
"durationBetweenOffers": "P7D",
"startDateTime": null,
"endDateTime": null
},
"monitoring": {
"monitoringRules": [
{
"@odata.type": "#microsoft.graph.windowsUpdates.monitoringRule",
"signal": "rollback",
"threshold": 5,
"action": "pauseDeployment"
}
]
},
"userExperience": null,
"safeguard": null
},
"createdDateTime": "String (timestamp)",
"lastModifiedDateTime": "String (timestamp)"
}