Create macOSCompliancePolicy
Article 11/30/2023
12 contributors
Feedback
In this article
Namespace: microsoft.graph
Note: The Microsoft Graph API for Intune requires an active Intune license for the tenant.
Create a new macOSCompliancePolicy object.
This API is available in the following national cloud deployments .
Global service
US Government L4
US Government L5 (DOD)
China operated by 21Vianet
✅
✅
✅
✅
Permissions
One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions .
Permission type
Permissions (from least to most privileged)
Delegated (work or school account)
DeviceManagementConfiguration.ReadWrite.All
Delegated (personal Microsoft account)
Not supported.
Application
DeviceManagementConfiguration.ReadWrite.All
HTTP Request
POST /deviceManagement/deviceCompliancePolicies
Request body
In the request body, supply a JSON representation for the macOSCompliancePolicy object.
The following table shows the properties that are required when you create the macOSCompliancePolicy.
Property
Type
Description
id
String
Key of the entity. Inherited from deviceCompliancePolicy
createdDateTime
DateTimeOffset
DateTime the object was created. Inherited from deviceCompliancePolicy
description
String
Admin provided description of the Device Configuration. Inherited from deviceCompliancePolicy
lastModifiedDateTime
DateTimeOffset
DateTime the object was last modified. Inherited from deviceCompliancePolicy
displayName
String
Admin provided name of the device configuration. Inherited from deviceCompliancePolicy
version
Int32
Version of the device configuration. Inherited from deviceCompliancePolicy
passwordRequired
Boolean
Whether or not to require a password.
passwordBlockSimple
Boolean
Indicates whether or not to block simple passwords.
passwordExpirationDays
Int32
Number of days before the password expires. Valid values 1 to 65535
passwordMinimumLength
Int32
Minimum length of password. Valid values 4 to 14
passwordMinutesOfInactivityBeforeLock
Int32
Minutes of inactivity before a password is required.
passwordPreviousPasswordBlockCount
Int32
Number of previous passwords to block. Valid values 1 to 24
passwordMinimumCharacterSetCount
Int32
The number of character sets required in the password.
passwordRequiredType
requiredPasswordType
The required password type. Possible values are: deviceDefault
, alphanumeric
, numeric
.
osMinimumVersion
String
Minimum MacOS version.
osMaximumVersion
String
Maximum MacOS version.
systemIntegrityProtectionEnabled
Boolean
Require that devices have enabled system integrity protection.
deviceThreatProtectionEnabled
Boolean
Require that devices have enabled device threat protection.
deviceThreatProtectionRequiredSecurityLevel
deviceThreatProtectionLevel
Require Mobile Threat Protection minimum risk level to report noncompliance. Possible values are: unavailable
, secured
, low
, medium
, high
, notSet
.
storageRequireEncryption
Boolean
Require encryption on Mac OS devices.
firewallEnabled
Boolean
Whether the firewall should be enabled or not.
firewallBlockAllIncoming
Boolean
Corresponds to the “Block all incoming connections� option.
firewallEnableStealthMode
Boolean
Corresponds to “Enable stealth mode.�
Response
If successful, this method returns a 201 Created
response code and a macOSCompliancePolicy object in the response body.
Example
Request
Here is an example of the request.
POST https://graph.microsoft.com/v1.0/deviceManagement/deviceCompliancePolicies
Content-type: application/json
Content-length: 849
{
"@odata.type": "#microsoft.graph.macOSCompliancePolicy",
"description": "Description value",
"displayName": "Display Name value",
"version": 7,
"passwordRequired": true,
"passwordBlockSimple": true,
"passwordExpirationDays": 6,
"passwordMinimumLength": 5,
"passwordMinutesOfInactivityBeforeLock": 5,
"passwordPreviousPasswordBlockCount": 2,
"passwordMinimumCharacterSetCount": 0,
"passwordRequiredType": "alphanumeric",
"osMinimumVersion": "Os Minimum Version value",
"osMaximumVersion": "Os Maximum Version value",
"systemIntegrityProtectionEnabled": true,
"deviceThreatProtectionEnabled": true,
"deviceThreatProtectionRequiredSecurityLevel": "secured",
"storageRequireEncryption": true,
"firewallEnabled": true,
"firewallBlockAllIncoming": true,
"firewallEnableStealthMode": true
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new MacOSCompliancePolicy
{
OdataType = "#microsoft.graph.macOSCompliancePolicy",
Description = "Description value",
DisplayName = "Display Name value",
Version = 7,
PasswordRequired = true,
PasswordBlockSimple = true,
PasswordExpirationDays = 6,
PasswordMinimumLength = 5,
PasswordMinutesOfInactivityBeforeLock = 5,
PasswordPreviousPasswordBlockCount = 2,
PasswordMinimumCharacterSetCount = 0,
PasswordRequiredType = RequiredPasswordType.Alphanumeric,
OsMinimumVersion = "Os Minimum Version value",
OsMaximumVersion = "Os Maximum Version value",
SystemIntegrityProtectionEnabled = true,
DeviceThreatProtectionEnabled = true,
DeviceThreatProtectionRequiredSecurityLevel = DeviceThreatProtectionLevel.Secured,
StorageRequireEncryption = true,
FirewallEnabled = true,
FirewallBlockAllIncoming = true,
FirewallEnableStealthMode = true,
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.DeviceManagement.DeviceCompliancePolicies.PostAsync(requestBody);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
mgc device-management device-compliance-policies create --body '{\
"@odata.type": "#microsoft.graph.macOSCompliancePolicy",\
"description": "Description value",\
"displayName": "Display Name value",\
"version": 7,\
"passwordRequired": true,\
"passwordBlockSimple": true,\
"passwordExpirationDays": 6,\
"passwordMinimumLength": 5,\
"passwordMinutesOfInactivityBeforeLock": 5,\
"passwordPreviousPasswordBlockCount": 2,\
"passwordMinimumCharacterSetCount": 0,\
"passwordRequiredType": "alphanumeric",\
"osMinimumVersion": "Os Minimum Version value",\
"osMaximumVersion": "Os Maximum Version value",\
"systemIntegrityProtectionEnabled": true,\
"deviceThreatProtectionEnabled": true,\
"deviceThreatProtectionRequiredSecurityLevel": "secured",\
"storageRequireEncryption": true,\
"firewallEnabled": true,\
"firewallBlockAllIncoming": true,\
"firewallEnableStealthMode": true\
}\
'
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewDeviceCompliancePolicy()
description := "Description value"
requestBody.SetDescription(&description)
displayName := "Display Name value"
requestBody.SetDisplayName(&displayName)
version := int32(7)
requestBody.SetVersion(&version)
passwordRequired := true
requestBody.SetPasswordRequired(&passwordRequired)
passwordBlockSimple := true
requestBody.SetPasswordBlockSimple(&passwordBlockSimple)
passwordExpirationDays := int32(6)
requestBody.SetPasswordExpirationDays(&passwordExpirationDays)
passwordMinimumLength := int32(5)
requestBody.SetPasswordMinimumLength(&passwordMinimumLength)
passwordMinutesOfInactivityBeforeLock := int32(5)
requestBody.SetPasswordMinutesOfInactivityBeforeLock(&passwordMinutesOfInactivityBeforeLock)
passwordPreviousPasswordBlockCount := int32(2)
requestBody.SetPasswordPreviousPasswordBlockCount(&passwordPreviousPasswordBlockCount)
passwordMinimumCharacterSetCount := int32(0)
requestBody.SetPasswordMinimumCharacterSetCount(&passwordMinimumCharacterSetCount)
passwordRequiredType := graphmodels.ALPHANUMERIC_REQUIREDPASSWORDTYPE
requestBody.SetPasswordRequiredType(&passwordRequiredType)
osMinimumVersion := "Os Minimum Version value"
requestBody.SetOsMinimumVersion(&osMinimumVersion)
osMaximumVersion := "Os Maximum Version value"
requestBody.SetOsMaximumVersion(&osMaximumVersion)
systemIntegrityProtectionEnabled := true
requestBody.SetSystemIntegrityProtectionEnabled(&systemIntegrityProtectionEnabled)
deviceThreatProtectionEnabled := true
requestBody.SetDeviceThreatProtectionEnabled(&deviceThreatProtectionEnabled)
deviceThreatProtectionRequiredSecurityLevel := graphmodels.SECURED_DEVICETHREATPROTECTIONLEVEL
requestBody.SetDeviceThreatProtectionRequiredSecurityLevel(&deviceThreatProtectionRequiredSecurityLevel)
storageRequireEncryption := true
requestBody.SetStorageRequireEncryption(&storageRequireEncryption)
firewallEnabled := true
requestBody.SetFirewallEnabled(&firewallEnabled)
firewallBlockAllIncoming := true
requestBody.SetFirewallBlockAllIncoming(&firewallBlockAllIncoming)
firewallEnableStealthMode := true
requestBody.SetFirewallEnableStealthMode(&firewallEnableStealthMode)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
deviceCompliancePolicies, err := graphClient.DeviceManagement().DeviceCompliancePolicies().Post(context.Background(), requestBody, nil)
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
MacOSCompliancePolicy deviceCompliancePolicy = new MacOSCompliancePolicy();
deviceCompliancePolicy.setOdataType("#microsoft.graph.macOSCompliancePolicy");
deviceCompliancePolicy.setDescription("Description value");
deviceCompliancePolicy.setDisplayName("Display Name value");
deviceCompliancePolicy.setVersion(7);
deviceCompliancePolicy.setPasswordRequired(true);
deviceCompliancePolicy.setPasswordBlockSimple(true);
deviceCompliancePolicy.setPasswordExpirationDays(6);
deviceCompliancePolicy.setPasswordMinimumLength(5);
deviceCompliancePolicy.setPasswordMinutesOfInactivityBeforeLock(5);
deviceCompliancePolicy.setPasswordPreviousPasswordBlockCount(2);
deviceCompliancePolicy.setPasswordMinimumCharacterSetCount(0);
deviceCompliancePolicy.setPasswordRequiredType(RequiredPasswordType.Alphanumeric);
deviceCompliancePolicy.setOsMinimumVersion("Os Minimum Version value");
deviceCompliancePolicy.setOsMaximumVersion("Os Maximum Version value");
deviceCompliancePolicy.setSystemIntegrityProtectionEnabled(true);
deviceCompliancePolicy.setDeviceThreatProtectionEnabled(true);
deviceCompliancePolicy.setDeviceThreatProtectionRequiredSecurityLevel(DeviceThreatProtectionLevel.Secured);
deviceCompliancePolicy.setStorageRequireEncryption(true);
deviceCompliancePolicy.setFirewallEnabled(true);
deviceCompliancePolicy.setFirewallBlockAllIncoming(true);
deviceCompliancePolicy.setFirewallEnableStealthMode(true);
DeviceCompliancePolicy result = graphClient.deviceManagement().deviceCompliancePolicies().post(deviceCompliancePolicy);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
const options = {
authProvider,
};
const client = Client.init(options);
const deviceCompliancePolicy = {
'@odata.type': '#microsoft.graph.macOSCompliancePolicy',
description: 'Description value',
displayName: 'Display Name value',
version: 7,
passwordRequired: true,
passwordBlockSimple: true,
passwordExpirationDays: 6,
passwordMinimumLength: 5,
passwordMinutesOfInactivityBeforeLock: 5,
passwordPreviousPasswordBlockCount: 2,
passwordMinimumCharacterSetCount: 0,
passwordRequiredType: 'alphanumeric',
osMinimumVersion: 'Os Minimum Version value',
osMaximumVersion: 'Os Maximum Version value',
systemIntegrityProtectionEnabled: true,
deviceThreatProtectionEnabled: true,
deviceThreatProtectionRequiredSecurityLevel: 'secured',
storageRequireEncryption: true,
firewallEnabled: true,
firewallBlockAllIncoming: true,
firewallEnableStealthMode: true
};
await client.api('/deviceManagement/deviceCompliancePolicies')
.post(deviceCompliancePolicy);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\MacOSCompliancePolicy;
use Microsoft\Graph\Generated\Models\RequiredPasswordType;
use Microsoft\Graph\Generated\Models\DeviceThreatProtectionLevel;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new MacOSCompliancePolicy();
$requestBody->setOdataType('#microsoft.graph.macOSCompliancePolicy');
$requestBody->setDescription('Description value');
$requestBody->setDisplayName('Display Name value');
$requestBody->setVersion(7);
$requestBody->setPasswordRequired(true);
$requestBody->setPasswordBlockSimple(true);
$requestBody->setPasswordExpirationDays(6);
$requestBody->setPasswordMinimumLength(5);
$requestBody->setPasswordMinutesOfInactivityBeforeLock(5);
$requestBody->setPasswordPreviousPasswordBlockCount(2);
$requestBody->setPasswordMinimumCharacterSetCount(0);
$requestBody->setPasswordRequiredType(new RequiredPasswordType('alphanumeric'));
$requestBody->setOsMinimumVersion('Os Minimum Version value');
$requestBody->setOsMaximumVersion('Os Maximum Version value');
$requestBody->setSystemIntegrityProtectionEnabled(true);
$requestBody->setDeviceThreatProtectionEnabled(true);
$requestBody->setDeviceThreatProtectionRequiredSecurityLevel(new DeviceThreatProtectionLevel('secured'));
$requestBody->setStorageRequireEncryption(true);
$requestBody->setFirewallEnabled(true);
$requestBody->setFirewallBlockAllIncoming(true);
$requestBody->setFirewallEnableStealthMode(true);
$result = $graphServiceClient->deviceManagement()->deviceCompliancePolicies()->post($requestBody)->wait();
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
Import-Module Microsoft.Graph.DeviceManagement
$params = @{
"@odata.type" = "#microsoft.graph.macOSCompliancePolicy"
description = "Description value"
displayName = "Display Name value"
version = 7
passwordRequired = $true
passwordBlockSimple = $true
passwordExpirationDays =
passwordMinimumLength =
passwordMinutesOfInactivityBeforeLock =
passwordPreviousPasswordBlockCount =
passwordMinimumCharacterSetCount =
passwordRequiredType = "alphanumeric"
osMinimumVersion = "Os Minimum Version value"
osMaximumVersion = "Os Maximum Version value"
systemIntegrityProtectionEnabled = $true
deviceThreatProtectionEnabled = $true
deviceThreatProtectionRequiredSecurityLevel = "secured"
storageRequireEncryption = $true
firewallEnabled = $true
firewallBlockAllIncoming = $true
firewallEnableStealthMode = $true
}
New-MgDeviceManagementDeviceCompliancePolicy -BodyParameter $params
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.mac_o_s_compliance_policy import MacOSCompliancePolicy
from msgraph.generated.models.required_password_type import RequiredPasswordType
from msgraph.generated.models.device_threat_protection_level import DeviceThreatProtectionLevel
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = MacOSCompliancePolicy(
odata_type = "#microsoft.graph.macOSCompliancePolicy",
description = "Description value",
display_name = "Display Name value",
version = 7,
password_required = True,
password_block_simple = True,
password_expiration_days = 6,
password_minimum_length = 5,
password_minutes_of_inactivity_before_lock = 5,
password_previous_password_block_count = 2,
password_minimum_character_set_count = 0,
password_required_type = RequiredPasswordType.Alphanumeric,
os_minimum_version = "Os Minimum Version value",
os_maximum_version = "Os Maximum Version value",
system_integrity_protection_enabled = True,
device_threat_protection_enabled = True,
device_threat_protection_required_security_level = DeviceThreatProtectionLevel.Secured,
storage_require_encryption = True,
firewall_enabled = True,
firewall_block_all_incoming = True,
firewall_enable_stealth_mode = True,
)
result = await graph_client.device_management.device_compliance_policies.post(request_body)
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
Response
Here is an example of the response. Note: The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call.
HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 1021
{
"@odata.type": "#microsoft.graph.macOSCompliancePolicy",
"id": "ddbadff3-dff3-ddba-f3df-baddf3dfbadd",
"createdDateTime": "2017-01-01T00:02:43.5775965-08:00",
"description": "Description value",
"lastModifiedDateTime": "2017-01-01T00:00:35.1329464-08:00",
"displayName": "Display Name value",
"version": 7,
"passwordRequired": true,
"passwordBlockSimple": true,
"passwordExpirationDays": 6,
"passwordMinimumLength": 5,
"passwordMinutesOfInactivityBeforeLock": 5,
"passwordPreviousPasswordBlockCount": 2,
"passwordMinimumCharacterSetCount": 0,
"passwordRequiredType": "alphanumeric",
"osMinimumVersion": "Os Minimum Version value",
"osMaximumVersion": "Os Maximum Version value",
"systemIntegrityProtectionEnabled": true,
"deviceThreatProtectionEnabled": true,
"deviceThreatProtectionRequiredSecurityLevel": "secured",
"storageRequireEncryption": true,
"firewallEnabled": true,
"firewallBlockAllIncoming": true,
"firewallEnableStealthMode": true
}