Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.
The following example shows a request.
POST https://graph.microsoft.com/beta/admin/configurationManagement/configurationMonitors
Content-Type: application/json
{
"displayName": "Demo Monitor",
"description": "This is a Demo Monitor",
"baseline": {
"displayName": "Demo Baseline",
"description": "This is a baseline with resources SharedMailbox, AcceptedDomain and MailContact",
"resources": [
{
"displayName": "TestSharedMailbox Resource",
"resourceType": "microsoft.exchange.sharedmailbox",
"properties": {
"DisplayName": "TestSharedMailbox",
"Alias": "testSharedMailbox",
"Identity": "TestSharedMailbox",
"Ensure": "Present",
"PrimarySmtpAddress": "testSharedMailbox@contoso.onmicrosoft.com",
"EmailAddresses": [
"abc@contoso.onmicrosoft.com"
]
}
},
{
"displayName": "Accepted Domain",
"resourceType": "microsoft.exchange.accepteddomain",
"properties": {
"Identity": "contoso.onmicrosoft.com",
"DomainType": "InternalRelay",
"Ensure": "Present"
}
},
{
"displayName": "Mail Contact Resource",
"resourceType": "microsoft.exchange.mailcontact",
"properties": {
"Name": "Chris",
"DisplayName": "Chris",
"ExternalEmailAddress": "SMTP:chris@fabrikam.com",
"Alias": "Chrisa",
"Ensure": "Present"
}
}
]
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new ConfigurationMonitor
{
DisplayName = "Demo Monitor",
Description = "This is a Demo Monitor",
Baseline = new ConfigurationBaseline
{
DisplayName = "Demo Baseline",
Description = "This is a baseline with resources SharedMailbox, AcceptedDomain and MailContact",
Resources = new List<BaselineResource>
{
new BaselineResource
{
DisplayName = "TestSharedMailbox Resource",
ResourceType = "microsoft.exchange.sharedmailbox",
Properties = new OpenComplexDictionaryType
{
AdditionalData = new Dictionary<string, object>
{
{
"DisplayName" , "TestSharedMailbox"
},
{
"Alias" , "testSharedMailbox"
},
{
"Identity" , "TestSharedMailbox"
},
{
"Ensure" , "Present"
},
{
"PrimarySmtpAddress" , "testSharedMailbox@contoso.onmicrosoft.com"
},
{
"EmailAddresses" , new List<string>
{
"abc@contoso.onmicrosoft.com",
}
},
},
},
},
new BaselineResource
{
DisplayName = "Accepted Domain",
ResourceType = "microsoft.exchange.accepteddomain",
Properties = new OpenComplexDictionaryType
{
AdditionalData = new Dictionary<string, object>
{
{
"Identity" , "contoso.onmicrosoft.com"
},
{
"DomainType" , "InternalRelay"
},
{
"Ensure" , "Present"
},
},
},
},
new BaselineResource
{
DisplayName = "Mail Contact Resource",
ResourceType = "microsoft.exchange.mailcontact",
Properties = new OpenComplexDictionaryType
{
AdditionalData = new Dictionary<string, object>
{
{
"Name" , "Chris"
},
{
"DisplayName" , "Chris"
},
{
"ExternalEmailAddress" , "SMTP:chris@fabrikam.com"
},
{
"Alias" , "Chrisa"
},
{
"Ensure" , "Present"
},
},
},
},
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Admin.ConfigurationManagement.ConfigurationMonitors.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewConfigurationMonitor()
displayName := "Demo Monitor"
requestBody.SetDisplayName(&displayName)
description := "This is a Demo Monitor"
requestBody.SetDescription(&description)
baseline := graphmodels.NewConfigurationBaseline()
displayName := "Demo Baseline"
baseline.SetDisplayName(&displayName)
description := "This is a baseline with resources SharedMailbox, AcceptedDomain and MailContact"
baseline.SetDescription(&description)
baselineResource := graphmodels.NewBaselineResource()
displayName := "TestSharedMailbox Resource"
baselineResource.SetDisplayName(&displayName)
resourceType := "microsoft.exchange.sharedmailbox"
baselineResource.SetResourceType(&resourceType)
properties := graphmodels.NewOpenComplexDictionaryType()
additionalData := map[string]interface{}{
"DisplayName" : "TestSharedMailbox",
"Alias" : "testSharedMailbox",
"Identity" : "TestSharedMailbox",
"Ensure" : "Present",
"PrimarySmtpAddress" : "testSharedMailbox@contoso.onmicrosoft.com",
emailAddresses := []string {
"abc@contoso.onmicrosoft.com",
}
}
properties.SetAdditionalData(additionalData)
baselineResource.SetProperties(properties)
baselineResource1 := graphmodels.NewBaselineResource()
displayName := "Accepted Domain"
baselineResource1.SetDisplayName(&displayName)
resourceType := "microsoft.exchange.accepteddomain"
baselineResource1.SetResourceType(&resourceType)
properties := graphmodels.NewOpenComplexDictionaryType()
additionalData := map[string]interface{}{
"Identity" : "contoso.onmicrosoft.com",
"DomainType" : "InternalRelay",
"Ensure" : "Present",
}
properties.SetAdditionalData(additionalData)
baselineResource1.SetProperties(properties)
baselineResource2 := graphmodels.NewBaselineResource()
displayName := "Mail Contact Resource"
baselineResource2.SetDisplayName(&displayName)
resourceType := "microsoft.exchange.mailcontact"
baselineResource2.SetResourceType(&resourceType)
properties := graphmodels.NewOpenComplexDictionaryType()
additionalData := map[string]interface{}{
"Name" : "Chris",
"DisplayName" : "Chris",
"ExternalEmailAddress" : "SMTP:chris@fabrikam.com",
"Alias" : "Chrisa",
"Ensure" : "Present",
}
properties.SetAdditionalData(additionalData)
baselineResource2.SetProperties(properties)
resources := []graphmodels.BaselineResourceable {
baselineResource,
baselineResource1,
baselineResource2,
}
baseline.SetResources(resources)
requestBody.SetBaseline(baseline)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
configurationMonitors, err := graphClient.Admin().ConfigurationManagement().ConfigurationMonitors().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
ConfigurationMonitor configurationMonitor = new ConfigurationMonitor();
configurationMonitor.setDisplayName("Demo Monitor");
configurationMonitor.setDescription("This is a Demo Monitor");
ConfigurationBaseline baseline = new ConfigurationBaseline();
baseline.setDisplayName("Demo Baseline");
baseline.setDescription("This is a baseline with resources SharedMailbox, AcceptedDomain and MailContact");
LinkedList<BaselineResource> resources = new LinkedList<BaselineResource>();
BaselineResource baselineResource = new BaselineResource();
baselineResource.setDisplayName("TestSharedMailbox Resource");
baselineResource.setResourceType("microsoft.exchange.sharedmailbox");
OpenComplexDictionaryType properties = new OpenComplexDictionaryType();
HashMap<String, Object> additionalData = new HashMap<String, Object>();
additionalData.put("DisplayName", "TestSharedMailbox");
additionalData.put("Alias", "testSharedMailbox");
additionalData.put("Identity", "TestSharedMailbox");
additionalData.put("Ensure", "Present");
additionalData.put("PrimarySmtpAddress", "testSharedMailbox@contoso.onmicrosoft.com");
LinkedList<String> emailAddresses = new LinkedList<String>();
emailAddresses.add("abc@contoso.onmicrosoft.com");
additionalData.put("EmailAddresses", emailAddresses);
properties.setAdditionalData(additionalData);
baselineResource.setProperties(properties);
resources.add(baselineResource);
BaselineResource baselineResource1 = new BaselineResource();
baselineResource1.setDisplayName("Accepted Domain");
baselineResource1.setResourceType("microsoft.exchange.accepteddomain");
OpenComplexDictionaryType properties1 = new OpenComplexDictionaryType();
HashMap<String, Object> additionalData1 = new HashMap<String, Object>();
additionalData1.put("Identity", "contoso.onmicrosoft.com");
additionalData1.put("DomainType", "InternalRelay");
additionalData1.put("Ensure", "Present");
properties1.setAdditionalData(additionalData1);
baselineResource1.setProperties(properties1);
resources.add(baselineResource1);
BaselineResource baselineResource2 = new BaselineResource();
baselineResource2.setDisplayName("Mail Contact Resource");
baselineResource2.setResourceType("microsoft.exchange.mailcontact");
OpenComplexDictionaryType properties2 = new OpenComplexDictionaryType();
HashMap<String, Object> additionalData2 = new HashMap<String, Object>();
additionalData2.put("Name", "Chris");
additionalData2.put("DisplayName", "Chris");
additionalData2.put("ExternalEmailAddress", "SMTP:chris@fabrikam.com");
additionalData2.put("Alias", "Chrisa");
additionalData2.put("Ensure", "Present");
properties2.setAdditionalData(additionalData2);
baselineResource2.setProperties(properties2);
resources.add(baselineResource2);
baseline.setResources(resources);
configurationMonitor.setBaseline(baseline);
ConfigurationMonitor result = graphClient.admin().configurationManagement().configurationMonitors().post(configurationMonitor);
const options = {
authProvider,
};
const client = Client.init(options);
const configurationMonitor = {
displayName: 'Demo Monitor',
description: 'This is a Demo Monitor',
baseline: {
displayName: 'Demo Baseline',
description: 'This is a baseline with resources SharedMailbox, AcceptedDomain and MailContact',
resources: [
{
displayName: 'TestSharedMailbox Resource',
resourceType: 'microsoft.exchange.sharedmailbox',
properties: {
DisplayName: 'TestSharedMailbox',
Alias: 'testSharedMailbox',
Identity: 'TestSharedMailbox',
Ensure: 'Present',
PrimarySmtpAddress: 'testSharedMailbox@contoso.onmicrosoft.com',
EmailAddresses: [
'abc@contoso.onmicrosoft.com'
]
}
},
{
displayName: 'Accepted Domain',
resourceType: 'microsoft.exchange.accepteddomain',
properties: {
Identity: 'contoso.onmicrosoft.com',
DomainType: 'InternalRelay',
Ensure: 'Present'
}
},
{
displayName: 'Mail Contact Resource',
resourceType: 'microsoft.exchange.mailcontact',
properties: {
Name: 'Chris',
DisplayName: 'Chris',
ExternalEmailAddress: 'SMTP:chris@fabrikam.com',
Alias: 'Chrisa',
Ensure: 'Present'
}
}
]
}
};
await client.api('/admin/configurationManagement/configurationMonitors')
.version('beta')
.post(configurationMonitor);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\ConfigurationMonitor;
use Microsoft\Graph\Beta\Generated\Models\ConfigurationBaseline;
use Microsoft\Graph\Beta\Generated\Models\BaselineResource;
use Microsoft\Graph\Beta\Generated\Models\OpenComplexDictionaryType;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new ConfigurationMonitor();
$requestBody->setDisplayName('Demo Monitor');
$requestBody->setDescription('This is a Demo Monitor');
$baseline = new ConfigurationBaseline();
$baseline->setDisplayName('Demo Baseline');
$baseline->setDescription('This is a baseline with resources SharedMailbox, AcceptedDomain and MailContact');
$resourcesBaselineResource1 = new BaselineResource();
$resourcesBaselineResource1->setDisplayName('TestSharedMailbox Resource');
$resourcesBaselineResource1->setResourceType('microsoft.exchange.sharedmailbox');
$resourcesBaselineResource1Properties = new OpenComplexDictionaryType();
$additionalData = [
'DisplayName' => 'TestSharedMailbox',
'Alias' => 'testSharedMailbox',
'Identity' => 'TestSharedMailbox',
'Ensure' => 'Present',
'PrimarySmtpAddress' => 'testSharedMailbox@contoso.onmicrosoft.com',
'EmailAddresses' => [
'abc@contoso.onmicrosoft.com', ],
];
$resourcesBaselineResource1Properties->setAdditionalData($additionalData);
$resourcesBaselineResource1->setProperties($resourcesBaselineResource1Properties);
$resourcesArray []= $resourcesBaselineResource1;
$resourcesBaselineResource2 = new BaselineResource();
$resourcesBaselineResource2->setDisplayName('Accepted Domain');
$resourcesBaselineResource2->setResourceType('microsoft.exchange.accepteddomain');
$resourcesBaselineResource2Properties = new OpenComplexDictionaryType();
$additionalData = [
'Identity' => 'contoso.onmicrosoft.com',
'DomainType' => 'InternalRelay',
'Ensure' => 'Present',
];
$resourcesBaselineResource2Properties->setAdditionalData($additionalData);
$resourcesBaselineResource2->setProperties($resourcesBaselineResource2Properties);
$resourcesArray []= $resourcesBaselineResource2;
$resourcesBaselineResource3 = new BaselineResource();
$resourcesBaselineResource3->setDisplayName('Mail Contact Resource');
$resourcesBaselineResource3->setResourceType('microsoft.exchange.mailcontact');
$resourcesBaselineResource3Properties = new OpenComplexDictionaryType();
$additionalData = [
'Name' => 'Chris',
'DisplayName' => 'Chris',
'ExternalEmailAddress' => 'SMTP:chris@fabrikam.com',
'Alias' => 'Chrisa',
'Ensure' => 'Present',
];
$resourcesBaselineResource3Properties->setAdditionalData($additionalData);
$resourcesBaselineResource3->setProperties($resourcesBaselineResource3Properties);
$resourcesArray []= $resourcesBaselineResource3;
$baseline->setResources($resourcesArray);
$requestBody->setBaseline($baseline);
$result = $graphServiceClient->admin()->configurationManagement()->configurationMonitors()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.ConfigurationManagement
$params = @{
displayName = "Demo Monitor"
description = "This is a Demo Monitor"
baseline = @{
displayName = "Demo Baseline"
description = "This is a baseline with resources SharedMailbox, AcceptedDomain and MailContact"
resources = @(
@{
displayName = "TestSharedMailbox Resource"
resourceType = "microsoft.exchange.sharedmailbox"
properties = @{
DisplayName = "TestSharedMailbox"
Alias = "testSharedMailbox"
Identity = "TestSharedMailbox"
Ensure = "Present"
PrimarySmtpAddress = "testSharedMailbox@contoso.onmicrosoft.com"
EmailAddresses = @(
"abc@contoso.onmicrosoft.com"
)
}
}
@{
displayName = "Accepted Domain"
resourceType = "microsoft.exchange.accepteddomain"
properties = @{
Identity = "contoso.onmicrosoft.com"
DomainType = "InternalRelay"
Ensure = "Present"
}
}
@{
displayName = "Mail Contact Resource"
resourceType = "microsoft.exchange.mailcontact"
properties = @{
Name = "Chris"
DisplayName = "Chris"
ExternalEmailAddress = "SMTP:chris@fabrikam.com"
Alias = "Chrisa"
Ensure = "Present"
}
}
)
}
}
New-MgBetaAdminConfigurationManagementConfigurationMonitor -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.configuration_monitor import ConfigurationMonitor
from msgraph_beta.generated.models.configuration_baseline import ConfigurationBaseline
from msgraph_beta.generated.models.baseline_resource import BaselineResource
from msgraph_beta.generated.models.open_complex_dictionary_type import OpenComplexDictionaryType
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ConfigurationMonitor(
display_name = "Demo Monitor",
description = "This is a Demo Monitor",
baseline = ConfigurationBaseline(
display_name = "Demo Baseline",
description = "This is a baseline with resources SharedMailbox, AcceptedDomain and MailContact",
resources = [
BaselineResource(
display_name = "TestSharedMailbox Resource",
resource_type = "microsoft.exchange.sharedmailbox",
properties = OpenComplexDictionaryType(
additional_data = {
"display_name" : "TestSharedMailbox",
"alias" : "testSharedMailbox",
"identity" : "TestSharedMailbox",
"ensure" : "Present",
"primary_smtp_address" : "testSharedMailbox@contoso.onmicrosoft.com",
"email_addresses" : [
"abc@contoso.onmicrosoft.com",
],
}
),
),
BaselineResource(
display_name = "Accepted Domain",
resource_type = "microsoft.exchange.accepteddomain",
properties = OpenComplexDictionaryType(
additional_data = {
"identity" : "contoso.onmicrosoft.com",
"domain_type" : "InternalRelay",
"ensure" : "Present",
}
),
),
BaselineResource(
display_name = "Mail Contact Resource",
resource_type = "microsoft.exchange.mailcontact",
properties = OpenComplexDictionaryType(
additional_data = {
"name" : "Chris",
"display_name" : "Chris",
"external_email_address" : "SMTP:chris@fabrikam.com",
"alias" : "Chrisa",
"ensure" : "Present",
}
),
),
],
),
)
result = await graph_client.admin.configuration_management.configuration_monitors.post(request_body)
The following example shows the response.