TenantGovernance-PolicyTemplate.ReadWrite.All
Allows the application to list, read, create, update, and delete Tenant Governance policy templates on behalf of the signed-in user.
In short
TenantGovernance-PolicyTemplate.ReadWrite.All is a delegated permission in the Microsoft Graph API, grouped under the TenantGovernance-PolicyTemplate category. Allows the application to list, read, create, update, and delete Tenant Governance policy templates on behalf of the signed-in user. It grants read and write access to resources. This delegated permission requires admin consent.
Permission Details
Read and write Tenant Governance policy templates
Allows the application to list, read, create, update, and delete Tenant Governance policy templates on behalf of the signed-in user.
7cd0bd21-45fe-4c8e-a549-3c95bd27d185
Properties
Properties is shown from stable Microsoft Graph v1.0 metadata.
| Property | Type | Description |
|---|---|---|
createdDateTime |
date-time |
|
delegatedAdministrationRoleAssignments |
delegatedAdministrationRoleAssignment collection |
|
description |
string |
|
displayName |
string |
|
governedTenantCanTerminate |
boolean |
|
id |
string |
The unique identifier for an entity. Read-only. |
lastModifiedDateTime |
date-time |
|
multiTenantApplicationsToProvision |
multiTenantApplicationsToProvision collection |
|
version |
string |
JSON Representation
JSON representation is shown from stable Microsoft Graph v1.0 metadata.
{
"createdDateTime": "2026-01-01T00:00:00Z",
"delegatedAdministrationRoleAssignments": [
{
"@type": "delegatedAdministrationRoleAssignment",
"id": "00000000-0000-0000-0000-000000000000"
}
],
"description": "String",
"displayName": "String",
"governedTenantCanTerminate": true,
"id": "String",
"lastModifiedDateTime": "2026-01-01T00:00:00Z",
"multiTenantApplicationsToProvision": [
{
"@type": "multiTenantApplicationsToProvision",
"id": "00000000-0000-0000-0000-000000000000"
}
],
"version": "String"
}
Relationships
Relationships is shown from stable Microsoft Graph v1.0 metadata.
| Relationship | Type | Description |
|---|---|---|
delegatedAdministrationRoleAssignments |
delegatedAdministrationRoleAssignment collection |
Related delegatedAdministrationRoleAssignments data exposed by this resource. |
multiTenantApplicationsToProvision |
multiTenantApplicationsToProvision collection |
Related multiTenantApplicationsToProvision data exposed by this resource. |
Graph Methods
Microsoft Graph v1.0 endpoints are mapped directly from refreshed Microsoft Learn permissions tables.
No API methods available for this version.
Microsoft Graph beta endpoints are mapped directly from refreshed Microsoft Learn permissions tables.
Microsoft Graph PowerShell v1.0 commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.
No deterministic PowerShell command map is available for this permission.
Browse PowerShell docsMicrosoft Graph PowerShell beta commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.
Code Examples
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models.TenantGovernanceServices;
using Microsoft.Graph.Beta.Models;
var requestBody = new GovernancePolicyTemplate
{
DisplayName = "Monitor Entra resource configurations",
Description = "Grants Global reader and provisions a custom multi-tenant application to monitor conditional access policies",
MultiTenantApplicationsToProvision = new List<MultiTenantApplicationsToProvision>
{
new MultiTenantApplicationsToProvision
{
AppId = "66667777-aaaa-8888-bbbb-9999cccc0000",
ObjectId = "cccccccc-2222-3333-4444-dddddddddddd",
DisplayName = "Mega Monitor",
RequiredResourceAccesses = new List<RequiredResourceAccess>
{
new RequiredResourceAccess
{
ResourceAppId = "00000003-0000-0000-c000-000000000000",
Permissions = new List<ResourcePermission>
{
new ResourcePermission
{
Id = "633e0fce-8c58-4cfb-9495-12bbd5a24f7c",
Name = "Policy.Read.ConditionalAccess",
Type = PermissionType.Scope,
},
new ResourcePermission
{
Id = "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
Name = "User.Read",
Type = PermissionType.Scope,
},
},
},
},
},
},
DelegatedAdministrationRoleAssignments = new List<DelegatedAdministrationRoleAssignment>
{
new DelegatedAdministrationRoleAssignment
{
RoleTemplates = new List<RoleTemplate>
{
new RoleTemplate
{
Id = "f2ef992c-3afb-46b9-b7cf-a126ee74c451",
Name = "Global Reader",
},
},
Group = new Group
{
Id = "ffffffff-5555-6666-7777-aaaaaaaaaaaa",
},
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Directory.TenantGovernance.GovernancePolicyTemplates.PostAsync(requestBody);
const options = {
authProvider,
};
const client = Client.init(options);
const governancePolicyTemplate = {
displayName: 'Monitor Entra resource configurations',
description: 'Grants Global reader and provisions a custom multi-tenant application to monitor conditional access policies',
multiTenantApplicationsToProvision: [
{
appId: '66667777-aaaa-8888-bbbb-9999cccc0000',
objectId: 'cccccccc-2222-3333-4444-dddddddddddd',
displayName: 'Mega Monitor',
requiredResourceAccesses: [
{
resourceAppId: '00000003-0000-0000-c000-000000000000',
permissions: [
{
id: '633e0fce-8c58-4cfb-9495-12bbd5a24f7c',
name: 'Policy.Read.ConditionalAccess',
type: 'scope'
},
{
id: 'e1fe6dd8-ba31-4d61-89e7-88639da4683d',
name: 'User.Read',
type: 'scope'
}
]
}
]
}
],
delegatedAdministrationRoleAssignments: [
{
roleTemplates: [
{
id: 'f2ef992c-3afb-46b9-b7cf-a126ee74c451',
name: 'Global Reader'
}
],
group: {
id: 'ffffffff-5555-6666-7777-aaaaaaaaaaaa'
}
}
]
};
await client.api('/directory/tenantGovernance/governancePolicyTemplates')
.version('beta')
.post(governancePolicyTemplate);
Import-Module Microsoft.Graph.Beta.Identity.DirectoryManagement
$params = @{
displayName = "Monitor Entra resource configurations"
description = "Grants Global reader and provisions a custom multi-tenant application to monitor conditional access policies"
multiTenantApplicationsToProvision = @(
@{
appId = "66667777-aaaa-8888-bbbb-9999cccc0000"
objectId = "cccccccc-2222-3333-4444-dddddddddddd"
displayName = "Mega Monitor"
requiredResourceAccesses = @(
@{
resourceAppId = "00000003-0000-0000-c000-000000000000"
permissions = @(
@{
id = "633e0fce-8c58-4cfb-9495-12bbd5a24f7c"
name = "Policy.Read.ConditionalAccess"
type = "scope"
}
@{
id = "e1fe6dd8-ba31-4d61-89e7-88639da4683d"
name = "User.Read"
type = "scope"
}
)
}
)
}
)
delegatedAdministrationRoleAssignments = @(
@{
roleTemplates = @(
@{
id = "f2ef992c-3afb-46b9-b7cf-a126ee74c451"
name = "Global Reader"
}
)
group = @{
id = "ffffffff-5555-6666-7777-aaaaaaaaaaaa"
}
}
)
}
New-MgBetaDirectoryTenantGovernancePolicyTemplate -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.tenant_governance_services.governance_policy_template import GovernancePolicyTemplate
from msgraph_beta.generated.models.tenant_governance_services.multi_tenant_applications_to_provision import MultiTenantApplicationsToProvision
from msgraph_beta.generated.models.tenant_governance_services.required_resource_access import RequiredResourceAccess
from msgraph_beta.generated.models.tenant_governance_services.resource_permission import ResourcePermission
from msgraph_beta.generated.models.permission_type import PermissionType
from msgraph_beta.generated.models.tenant_governance_services.delegated_administration_role_assignment import DelegatedAdministrationRoleAssignment
from msgraph_beta.generated.models.tenant_governance_services.role_template import RoleTemplate
from msgraph_beta.generated.models.group import Group
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = GovernancePolicyTemplate(
display_name = "Monitor Entra resource configurations",
description = "Grants Global reader and provisions a custom multi-tenant application to monitor conditional access policies",
multi_tenant_applications_to_provision = [
MultiTenantApplicationsToProvision(
app_id = "66667777-aaaa-8888-bbbb-9999cccc0000",
object_id = "cccccccc-2222-3333-4444-dddddddddddd",
display_name = "Mega Monitor",
required_resource_accesses = [
RequiredResourceAccess(
resource_app_id = "00000003-0000-0000-c000-000000000000",
permissions = [
ResourcePermission(
id = "633e0fce-8c58-4cfb-9495-12bbd5a24f7c",
name = "Policy.Read.ConditionalAccess",
type = PermissionType.Scope,
),
ResourcePermission(
id = "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
name = "User.Read",
type = PermissionType.Scope,
),
],
),
],
),
],
delegated_administration_role_assignments = [
DelegatedAdministrationRoleAssignment(
role_templates = [
RoleTemplate(
id = "f2ef992c-3afb-46b9-b7cf-a126ee74c451",
name = "Global Reader",
),
],
group = Group(
id = "ffffffff-5555-6666-7777-aaaaaaaaaaaa",
),
),
],
)
result = await graph_client.directory.tenant_governance.governance_policy_templates.post(request_body)
App Registration
Navigate to Azure Portal
Go to App registrations in Microsoft Entra admin center
Add API Permission
Select your app → API permissions → Add a permission → Microsoft Graph
Select Permission Type
Choose Delegated permissions and search for TenantGovernance-PolicyTemplate.ReadWrite.All
Grant Admin Consent
This delegated permission requires admin consent.
Frequently asked questions
What is the TenantGovernance-PolicyTemplate.ReadWrite.All Microsoft Graph permission?
TenantGovernance-PolicyTemplate.ReadWrite.All is a delegated permission in the Microsoft Graph API, grouped under the TenantGovernance-PolicyTemplate category. Allows the application to list, read, create, update, and delete Tenant Governance policy templates on behalf of the signed-in user. It grants read and write access to resources. This delegated permission requires admin consent. It is mapped to the Microsoft Graph tenantGovernancePolicyTemplate resource type. 7 documented Microsoft Graph REST methods require it. 5 Microsoft Graph PowerShell commands are documented for it.
Is TenantGovernance-PolicyTemplate.ReadWrite.All an application or a delegated permission?
TenantGovernance-PolicyTemplate.ReadWrite.All is a delegated permission only. It grants access on behalf of a signed-in user and cannot be used for app-only access.
Does TenantGovernance-PolicyTemplate.ReadWrite.All require admin consent?
This delegated permission requires admin consent.
What is the permission ID (GUID) for TenantGovernance-PolicyTemplate.ReadWrite.All?
For TenantGovernance-PolicyTemplate.ReadWrite.All, the delegated (OAuth2 scope) ID is 7cd0bd21-45fe-4c8e-a549-3c95bd27d185. These are the real Microsoft Graph identifiers and can be used directly in an app registration manifest.