POST https://graph.microsoft.com/beta/admin/windows/updates/updatePolicies
Content-Type: application/json
Content-length: 835
{
"@odata.type": "#microsoft.graph.windowsUpdates.updatePolicy",
"audience": {
"id": "8c4eb1eb-d7a3-4633-8e2f-f926e82df08e"
},
"complianceChanges": [
{
"@odata.type": "#microsoft.graph.windowsUpdates.contentApproval"
}
],
"complianceChangeRules": [
{
"@odata.type": "#microsoft.graph.windowsUpdates.contentApprovalRule",
"contentFilter": {
"@odata.type": "#microsoft.graph.windowsUpdates.driverUpdateFilter"
},
"durationBeforeDeploymentStart": "P7D"
}
],
"deploymentSettings": {
"@odata.type": "microsoft.graph.windowsUpdates.deploymentSettings",
"schedule": {
"gradualRollout": {
"@odata.type": "#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings",
"durationBetweenOffers": "P1D",
"devicePerOffer": 1000
}
}
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models.WindowsUpdates;
var requestBody = new UpdatePolicy
{
OdataType = "#microsoft.graph.windowsUpdates.updatePolicy",
Audience = new DeploymentAudience
{
Id = "8c4eb1eb-d7a3-4633-8e2f-f926e82df08e",
},
ComplianceChanges = new List<ComplianceChange>
{
new ContentApproval
{
OdataType = "#microsoft.graph.windowsUpdates.contentApproval",
},
},
ComplianceChangeRules = new List<ComplianceChangeRule>
{
new ContentApprovalRule
{
OdataType = "#microsoft.graph.windowsUpdates.contentApprovalRule",
ContentFilter = new DriverUpdateFilter
{
OdataType = "#microsoft.graph.windowsUpdates.driverUpdateFilter",
},
DurationBeforeDeploymentStart = TimeSpan.Parse("P7D"),
},
},
DeploymentSettings = new DeploymentSettings
{
OdataType = "microsoft.graph.windowsUpdates.deploymentSettings",
Schedule = new ScheduleSettings
{
GradualRollout = new RateDrivenRolloutSettings
{
OdataType = "#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings",
DurationBetweenOffers = TimeSpan.Parse("P1D"),
AdditionalData = new Dictionary<string, object>
{
{
"devicePerOffer" , 1000
},
},
},
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Admin.Windows.Updates.UpdatePolicies.PostAsync(requestBody);
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc-beta admin windows updates update-policies create --body '{\
"@odata.type": "#microsoft.graph.windowsUpdates.updatePolicy",\
"audience": {\
"id": "8c4eb1eb-d7a3-4633-8e2f-f926e82df08e"\
},\
"complianceChanges": [\
{\
"@odata.type": "#microsoft.graph.windowsUpdates.contentApproval"\
}\
],\
"complianceChangeRules": [\
{\
"@odata.type": "#microsoft.graph.windowsUpdates.contentApprovalRule",\
"contentFilter": {\
"@odata.type": "#microsoft.graph.windowsUpdates.driverUpdateFilter"\
},\
"durationBeforeDeploymentStart": "P7D"\
}\
],\
"deploymentSettings": {\
"@odata.type": "microsoft.graph.windowsUpdates.deploymentSettings",\
"schedule": {\
"gradualRollout": {\
"@odata.type": "#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings",\
"durationBetweenOffers": "P1D",\
"devicePerOffer": 1000\
}\
}\
}\
}\
'
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodelswindowsupdates "github.com/microsoftgraph/msgraph-beta-sdk-go/models/windowsupdates"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
requestBody := graphmodelswindowsupdates.NewUpdatePolicy()
audience := graphmodelswindowsupdates.NewDeploymentAudience()
id := "8c4eb1eb-d7a3-4633-8e2f-f926e82df08e"
audience.SetId(&id)
requestBody.SetAudience(audience)
complianceChange := graphmodelswindowsupdates.NewContentApproval()
complianceChanges := []graphmodelswindowsupdates.ComplianceChangeable {
complianceChange,
}
requestBody.SetComplianceChanges(complianceChanges)
complianceChangeRule := graphmodelswindowsupdates.NewContentApprovalRule()
contentFilter := graphmodelswindowsupdates.NewDriverUpdateFilter()
complianceChangeRule.SetContentFilter(contentFilter)
durationBeforeDeploymentStart , err := abstractions.ParseISODuration("P7D")
complianceChangeRule.SetDurationBeforeDeploymentStart(&durationBeforeDeploymentStart)
complianceChangeRules := []graphmodelswindowsupdates.ComplianceChangeRuleable {
complianceChangeRule,
}
requestBody.SetComplianceChangeRules(complianceChangeRules)
deploymentSettings := graphmodelswindowsupdates.NewDeploymentSettings()
schedule := graphmodelswindowsupdates.NewScheduleSettings()
gradualRollout := graphmodelswindowsupdates.NewRateDrivenRolloutSettings()
durationBetweenOffers , err := abstractions.ParseISODuration("P1D")
gradualRollout.SetDurationBetweenOffers(&durationBetweenOffers)
additionalData := map[string]interface{}{
"devicePerOffer" : int32(1000) ,
}
gradualRollout.SetAdditionalData(additionalData)
schedule.SetGradualRollout(gradualRollout)
deploymentSettings.SetSchedule(schedule)
requestBody.SetDeploymentSettings(deploymentSettings)
updatePolicies, err := graphClient.Admin().Windows().Updates().UpdatePolicies().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.beta.models.windowsupdates.UpdatePolicy updatePolicy = new com.microsoft.graph.beta.models.windowsupdates.UpdatePolicy();
updatePolicy.setOdataType("#microsoft.graph.windowsUpdates.updatePolicy");
com.microsoft.graph.beta.models.windowsupdates.DeploymentAudience audience = new com.microsoft.graph.beta.models.windowsupdates.DeploymentAudience();
audience.setId("8c4eb1eb-d7a3-4633-8e2f-f926e82df08e");
updatePolicy.setAudience(audience);
LinkedList<com.microsoft.graph.beta.models.windowsupdates.ComplianceChange> complianceChanges = new LinkedList<com.microsoft.graph.beta.models.windowsupdates.ComplianceChange>();
com.microsoft.graph.beta.models.windowsupdates.ContentApproval complianceChange = new com.microsoft.graph.beta.models.windowsupdates.ContentApproval();
complianceChange.setOdataType("#microsoft.graph.windowsUpdates.contentApproval");
complianceChanges.add(complianceChange);
updatePolicy.setComplianceChanges(complianceChanges);
LinkedList<com.microsoft.graph.beta.models.windowsupdates.ComplianceChangeRule> complianceChangeRules = new LinkedList<com.microsoft.graph.beta.models.windowsupdates.ComplianceChangeRule>();
com.microsoft.graph.beta.models.windowsupdates.ContentApprovalRule complianceChangeRule = new com.microsoft.graph.beta.models.windowsupdates.ContentApprovalRule();
complianceChangeRule.setOdataType("#microsoft.graph.windowsUpdates.contentApprovalRule");
com.microsoft.graph.beta.models.windowsupdates.DriverUpdateFilter contentFilter = new com.microsoft.graph.beta.models.windowsupdates.DriverUpdateFilter();
contentFilter.setOdataType("#microsoft.graph.windowsUpdates.driverUpdateFilter");
complianceChangeRule.setContentFilter(contentFilter);
PeriodAndDuration durationBeforeDeploymentStart = PeriodAndDuration.ofDuration(Duration.parse("P7D"));
complianceChangeRule.setDurationBeforeDeploymentStart(durationBeforeDeploymentStart);
complianceChangeRules.add(complianceChangeRule);
updatePolicy.setComplianceChangeRules(complianceChangeRules);
com.microsoft.graph.beta.models.windowsupdates.DeploymentSettings deploymentSettings = new com.microsoft.graph.beta.models.windowsupdates.DeploymentSettings();
deploymentSettings.setOdataType("microsoft.graph.windowsUpdates.deploymentSettings");
com.microsoft.graph.beta.models.windowsupdates.ScheduleSettings schedule = new com.microsoft.graph.beta.models.windowsupdates.ScheduleSettings();
com.microsoft.graph.beta.models.windowsupdates.RateDrivenRolloutSettings gradualRollout = new com.microsoft.graph.beta.models.windowsupdates.RateDrivenRolloutSettings();
gradualRollout.setOdataType("#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings");
PeriodAndDuration durationBetweenOffers = PeriodAndDuration.ofDuration(Duration.parse("P1D"));
gradualRollout.setDurationBetweenOffers(durationBetweenOffers);
HashMap<String, Object> additionalData = new HashMap<String, Object>();
additionalData.put("devicePerOffer", 1000);
gradualRollout.setAdditionalData(additionalData);
schedule.setGradualRollout(gradualRollout);
deploymentSettings.setSchedule(schedule);
updatePolicy.setDeploymentSettings(deploymentSettings);
com.microsoft.graph.models.windowsupdates.UpdatePolicy result = graphClient.admin().windows().updates().updatePolicies().post(updatePolicy);
const options = {
authProvider,
};
const client = Client.init(options);
const updatePolicy = {
'@odata.type': '#microsoft.graph.windowsUpdates.updatePolicy',
audience: {
id: '8c4eb1eb-d7a3-4633-8e2f-f926e82df08e'
},
complianceChanges: [
{
'@odata.type': '#microsoft.graph.windowsUpdates.contentApproval'
}
],
complianceChangeRules: [
{
'@odata.type': '#microsoft.graph.windowsUpdates.contentApprovalRule',
contentFilter: {
'@odata.type': '#microsoft.graph.windowsUpdates.driverUpdateFilter'
},
durationBeforeDeploymentStart: 'P7D'
}
],
deploymentSettings: {
'@odata.type': 'microsoft.graph.windowsUpdates.deploymentSettings',
schedule: {
gradualRollout: {
'@odata.type': '#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings',
durationBetweenOffers: 'P1D',
devicePerOffer: 1000
}
}
}
};
await client.api('/admin/windows/updates/updatePolicies')
.version('beta')
.post(updatePolicy);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\UpdatePolicy;
use Microsoft\Graph\Generated\Models\DeploymentAudience;
use Microsoft\Graph\Generated\Models\ComplianceChange;
use Microsoft\Graph\Generated\Models\ContentApproval;
use Microsoft\Graph\Generated\Models\ComplianceChangeRule;
use Microsoft\Graph\Generated\Models\ContentApprovalRule;
use Microsoft\Graph\Generated\Models\DriverUpdateFilter;
use Microsoft\Graph\Generated\Models\DeploymentSettings;
use Microsoft\Graph\Generated\Models\ScheduleSettings;
use Microsoft\Graph\Generated\Models\RateDrivenRolloutSettings;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new UpdatePolicy();
$requestBody->setOdataType('#microsoft.graph.windowsUpdates.updatePolicy');
$audience = new DeploymentAudience();
$audience->setId('8c4eb1eb-d7a3-4633-8e2f-f926e82df08e');
$requestBody->setAudience($audience);
$complianceChangesComplianceChange1 = new ContentApproval();
$complianceChangesComplianceChange1->setOdataType('#microsoft.graph.windowsUpdates.contentApproval');
$complianceChangesArray []= $complianceChangesComplianceChange1;
$requestBody->setComplianceChanges($complianceChangesArray);
$complianceChangeRulesComplianceChangeRule1 = new ContentApprovalRule();
$complianceChangeRulesComplianceChangeRule1->setOdataType('#microsoft.graph.windowsUpdates.contentApprovalRule');
$complianceChangeRulesComplianceChangeRule1ContentFilter = new DriverUpdateFilter();
$complianceChangeRulesComplianceChangeRule1ContentFilter->setOdataType('#microsoft.graph.windowsUpdates.driverUpdateFilter');
$complianceChangeRulesComplianceChangeRule1->setContentFilter($complianceChangeRulesComplianceChangeRule1ContentFilter);
$complianceChangeRulesComplianceChangeRule1->setDurationBeforeDeploymentStart(new \DateInterval('P7D'));
$complianceChangeRulesArray []= $complianceChangeRulesComplianceChangeRule1;
$requestBody->setComplianceChangeRules($complianceChangeRulesArray);
$deploymentSettings = new DeploymentSettings();
$deploymentSettings->setOdataType('microsoft.graph.windowsUpdates.deploymentSettings');
$deploymentSettingsSchedule = new ScheduleSettings();
$deploymentSettingsScheduleGradualRollout = new RateDrivenRolloutSettings();
$deploymentSettingsScheduleGradualRollout->setOdataType('#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings');
$deploymentSettingsScheduleGradualRollout->setDurationBetweenOffers(new \DateInterval('P1D'));
$additionalData = [
'devicePerOffer' => 1000,
];
$deploymentSettingsScheduleGradualRollout->setAdditionalData($additionalData);
$deploymentSettingsSchedule->setGradualRollout($deploymentSettingsScheduleGradualRollout);
$deploymentSettings->setSchedule($deploymentSettingsSchedule);
$requestBody->setDeploymentSettings($deploymentSettings);
$result = $graphServiceClient->admin()->windows()->updates()->updatePolicies()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.WindowsUpdates
$params = @{
"@odata.type" = "#microsoft.graph.windowsUpdates.updatePolicy"
audience = @{
id = "8c4eb1eb-d7a3-4633-8e2f-f926e82df08e"
}
complianceChanges = @(
@{
"@odata.type" = "#microsoft.graph.windowsUpdates.contentApproval"
}
)
complianceChangeRules = @(
@{
"@odata.type" = "#microsoft.graph.windowsUpdates.contentApprovalRule"
contentFilter = @{
"@odata.type" = "#microsoft.graph.windowsUpdates.driverUpdateFilter"
}
durationBeforeDeploymentStart = "P7D"
}
)
deploymentSettings = @{
"@odata.type" = "microsoft.graph.windowsUpdates.deploymentSettings"
schedule = @{
gradualRollout = @{
"@odata.type" = "#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings"
durationBetweenOffers = "P1D"
devicePerOffer =
}
}
}
}
New-MgBetaWindowsUpdatesPolicy -BodyParameter $params
from msgraph import GraphServiceClient
from msgraph.generated.models.update_policy import UpdatePolicy
from msgraph.generated.models.deployment_audience import DeploymentAudience
from msgraph.generated.models.compliance_change import ComplianceChange
from msgraph.generated.models.content_approval import ContentApproval
from msgraph.generated.models.compliance_change_rule import ComplianceChangeRule
from msgraph.generated.models.content_approval_rule import ContentApprovalRule
from msgraph.generated.models.driver_update_filter import DriverUpdateFilter
from msgraph.generated.models.deployment_settings import DeploymentSettings
from msgraph.generated.models.schedule_settings import ScheduleSettings
from msgraph.generated.models.rate_driven_rollout_settings import RateDrivenRolloutSettings
graph_client = GraphServiceClient(credentials, scopes)
request_body = UpdatePolicy(
odata_type = "#microsoft.graph.windowsUpdates.updatePolicy",
audience = DeploymentAudience(
id = "8c4eb1eb-d7a3-4633-8e2f-f926e82df08e",
),
compliance_changes = [
ContentApproval(
odata_type = "#microsoft.graph.windowsUpdates.contentApproval",
),
],
compliance_change_rules = [
ContentApprovalRule(
odata_type = "#microsoft.graph.windowsUpdates.contentApprovalRule",
content_filter = DriverUpdateFilter(
odata_type = "#microsoft.graph.windowsUpdates.driverUpdateFilter",
),
duration_before_deployment_start = "P7D",
),
],
deployment_settings = DeploymentSettings(
odata_type = "microsoft.graph.windowsUpdates.deploymentSettings",
schedule = ScheduleSettings(
gradual_rollout = RateDrivenRolloutSettings(
odata_type = "#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings",
duration_between_offers = "P1D",
additional_data = {
"device_per_offer" : 1000,
}
),
),
),
)
result = await graph_client.admin.windows.updates.update_policies.post(request_body)