ESC
Type to search...

TenantGovernance-PolicyTemplate.ReadWrite.All

Export JSON
Export CSV
Copy URL
Print
Delegated Read/Write All Resources

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 data: October 3, 2026 at 3:19 AM UTC
Delegated Access App-Only Access

Permission Details

Delegated Permission Admin consent required

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.

Properties

Microsoft Graph v1.0 exact-category

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

Microsoft Graph v1.0 exact-category

JSON representation is shown from stable Microsoft Graph v1.0 metadata.

JSON representation
{
  "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

Microsoft Graph v1.0 schema-derived

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

Delegated access App-only access
Exact Microsoft Learn match

Microsoft Graph v1.0 endpoints are mapped directly from refreshed Microsoft Learn permissions tables.

No API methods available for this version.

Exact Microsoft Learn match

Microsoft Graph beta endpoints are mapped directly from refreshed Microsoft Learn permissions tables.

Methods
GET /directory/tenantGovernance/governancePolicyTemplates
GET /directory/tenantGovernance/governancePolicyTemplates/{governancePolicyTemplateId}
GET /directory/tenantGovernance/governancePolicyTemplates/default
POST /directory/tenantGovernance/governancePolicyTemplates
PATCH /directory/tenantGovernance/governancePolicyTemplates/{governancePolicyTemplateId}
PATCH /directory/tenantGovernance/governancePolicyTemplates/default
DELETE /directory/tenantGovernance/governancePolicyTemplates/{governancePolicyTemplateId}
Exact Microsoft Learn PowerShell match

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 docs
Exact Microsoft Learn PowerShell match

Microsoft Graph PowerShell beta commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.

Commands
Get-MgBetaDirectoryTenantGovernancePolicyTemplate /directory/tenantGovernance/governancePolicyTemplates
List governancePolicyTemplates
Get-MgBetaDirectoryTenantGovernancePolicyTemplate /directory/tenantGovernance/governancePolicyTemplates/{governancePolicyTemplateId}
Get governancePolicyTemplate
New-MgBetaDirectoryTenantGovernancePolicyTemplate /directory/tenantGovernance/governancePolicyTemplates
Create governancePolicyTemplate
Remove-MgBetaDirectoryTenantGovernancePolicyTemplate /directory/tenantGovernance/governancePolicyTemplates/{governancePolicyTemplateId}
Delete governancePolicyTemplate
Update-MgBetaDirectoryTenantGovernancePolicyTemplate /directory/tenantGovernance/governancePolicyTemplates/{governancePolicyTemplateId}
Update governancePolicyTemplate

Code Examples

C# / .NET SDK
Create governancePolicyTemplate
// 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);
JavaScript
Create governancePolicyTemplate
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);
PowerShell
Create 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
Python
Create governancePolicyTemplate
# 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

1

Navigate to Azure Portal

Go to App registrations in Microsoft Entra admin center

2

Add API Permission

Select your app → API permissions → Add a permission → Microsoft Graph

3

Select Permission Type

Choose Delegated permissions and search for TenantGovernance-PolicyTemplate.ReadWrite.All

4

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.