Skip to content

Commit c7c2f68

Browse files
authored
Merge branch 'main' into prefer-header-update
2 parents 4d8f134 + 59562fe commit c7c2f68

13 files changed

+128
-66
lines changed

.vscode/settings.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"githubPullRequests.ignoredPullRequestBranches": [
3+
"main",
34
"main",
45
"main",
56
"main"

api-reference/beta/api/group-post-members.md

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,21 @@ The following table shows the least privileged permission that's required by eac
3333
| [servicePrincipal](../resources/group.md) | GroupMember.ReadWrite.All and Application.ReadWrite.All | Not supported. | GroupMember.ReadWrite.All and Application.ReadWrite.All |
3434
| [user](../resources/user.md) | GroupMember.ReadWrite.All | Not supported. | GroupMember.ReadWrite.All |
3535

36-
In delegated scenarios, the signed-in user must also be assigned a supported [Microsoft Entra role](/entra/identity/role-based-access-control/permissions-reference?toc=%2Fgraph%2Ftoc.json) or a custom role with the `microsoft.directory/groups/members/update` role permission. The following roles are the least privileged roles that are supported for this operation, except for role-assignable groups:
37-
38-
- Group owners
39-
- Directory Writers
40-
- Groups Administrator
41-
- Identity Governance Administrator
42-
- User Administrator
43-
- Exchange Administrator - only for Microsoft 365 groups
44-
- SharePoint Administrator - only for Microsoft 365 groups
45-
- Teams Administrator - only for Microsoft 365 groups
46-
- Yammer Administrator - only for Microsoft 365 groups
47-
- Intune Administrator - only for security groups
48-
49-
To add members to a role-assignable group, the app must also be assigned the *RoleManagement.ReadWrite.Directory* permission and the calling user must be assigned a supported Microsoft Entra role. *Privileged Role Administrator* is the least privileged role that is supported for this operation.
36+
> [!IMPORTANT]
37+
> In delegated scenarios, the signed-in user must also be assigned a supported [Microsoft Entra role](/entra/identity/role-based-access-control/permissions-reference?toc=%2Fgraph%2Ftoc.json) or a custom role with the `microsoft.directory/groups/members/update` role permission. The following roles are the least privileged roles that are supported for this operation, except for role-assignable groups:
38+
>
39+
> - Group owners
40+
> - Directory Writers
41+
> - Groups Administrator
42+
> - Identity Governance Administrator
43+
> - User Administrator
44+
> - Exchange Administrator - only for Microsoft 365 groups
45+
> - SharePoint Administrator - only for Microsoft 365 groups
46+
> - Teams Administrator - only for Microsoft 365 groups
47+
> - Yammer Administrator - only for Microsoft 365 groups
48+
> - Intune Administrator - only for security groups
49+
>
50+
> To add members to a role-assignable group, the app must also be assigned the *RoleManagement.ReadWrite.Directory* permission and the calling user must be assigned a supported Microsoft Entra role. *Privileged Role Administrator* is the least privileged role that is supported for this operation.
5051
5152
## HTTP request
5253

@@ -74,7 +75,10 @@ If using the **directoryObjects** reference, that is, `https://graph.microsoft.c
7475

7576
## Response
7677

77-
If successful, this method returns a `204 No Content` response code. It returns a `400 Bad Request` response code when the object is already a member of the group or is unsupported as a group member. It returns a `404 Not Found` response code when the object being added doesn't exist.
78+
If successful, this method returns a `204 No Content` response code. It returns a `400 Bad Request` response code when the object is already a member of the group or is unsupported as a group member. It returns a `404 Not Found` response code when the object being added doesn't exist. It returns `403 Unauthorized` in one of the following scenarios:
79+
- You're attempting to add a member to a [group that can't be managed through Microsoft Graph](../resources/groups-overview.md#group-types-in-microsoft-entra-id-and-microsoft-graph). This API supports only security and Microsoft 365 groups.
80+
- You're attempting to add a member you don't have permissions to add. Refer to the preceding [Permissions](#permissions) section for the permissions required to add different member types.
81+
- You're attempting to add a member to a role-assignable group and you don't have the required permissions.
7882

7983
## Example
8084

api-reference/v1.0/api/group-post-members.md

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,21 @@ The following table shows the least privileged permission that's required by eac
3131
| [servicePrincipal](../resources/group.md) | GroupMember.ReadWrite.All and Application.ReadWrite.All | Not supported. | GroupMember.ReadWrite.All and Application.ReadWrite.All |
3232
| [user](../resources/user.md) | GroupMember.ReadWrite.All | Not supported. | GroupMember.ReadWrite.All |
3333

34-
In delegated scenarios, the signed-in user must also be assigned a supported [Microsoft Entra role](/entra/identity/role-based-access-control/permissions-reference?toc=%2Fgraph%2Ftoc.json) or a custom role with the `microsoft.directory/groups/members/update` role permission. The following least privileged roles are supported for this operation, except for role-assignable groups:
35-
36-
- Group owners
37-
- Directory Writers
38-
- Groups Administrator
39-
- Identity Governance Administrator
40-
- User Administrator
41-
- Exchange Administrator - only for Microsoft 365 groups
42-
- SharePoint Administrator - only for Microsoft 365 groups
43-
- Teams Administrator - only for Microsoft 365 groups
44-
- Yammer Administrator - only for Microsoft 365 groups
45-
- Intune Administrator - only for security groups
46-
47-
To add members to a role-assignable group, the app must also be assigned the *RoleManagement.ReadWrite.Directory* permission and the calling user must be assigned a supported Microsoft Entra role. *Privileged Role Administrator* is the least privileged role that is supported for this operation.
34+
> [!IMPORTANT]
35+
> In delegated scenarios, the signed-in user must also be assigned a supported [Microsoft Entra role](/entra/identity/role-based-access-control/permissions-reference?toc=%2Fgraph%2Ftoc.json) or a custom role with the `microsoft.directory/groups/members/update` role permission. The following roles are the least privileged roles that are supported for this operation, except for role-assignable groups:
36+
>
37+
> - Group owners
38+
> - Directory Writers
39+
> - Groups Administrator
40+
> - Identity Governance Administrator
41+
> - User Administrator
42+
> - Exchange Administrator - only for Microsoft 365 groups
43+
> - SharePoint Administrator - only for Microsoft 365 groups
44+
> - Teams Administrator - only for Microsoft 365 groups
45+
> - Yammer Administrator - only for Microsoft 365 groups
46+
> - Intune Administrator - only for security groups
47+
>
48+
> To add members to a role-assignable group, the app must also be assigned the *RoleManagement.ReadWrite.Directory* permission and the calling user must be assigned a supported Microsoft Entra role. *Privileged Role Administrator* is the least privileged role that is supported for this operation.
4849
4950
## HTTP request
5051

@@ -72,7 +73,10 @@ If using the **directoryObjects** reference, that is, `https://graph.microsoft.c
7273

7374
## Response
7475

75-
If successful, this method returns a `204 No Content` response code. It returns a `400 Bad Request` response code when the object is already a member of the group or is unsupported as a group member. It returns a `404 Not Found` response code when the object being added doesn't exist.
76+
If successful, this method returns a `204 No Content` response code. It returns a `400 Bad Request` response code when the object is already a member of the group or is unsupported as a group member. It returns a `404 Not Found` response code when the object being added doesn't exist. It returns `403 Unauthorized` in one of the following scenarios:
77+
- You're attempting to add a member to a [group that can't be managed through Microsoft Graph](../resources/groups-overview.md#group-types-in-microsoft-entra-id-and-microsoft-graph). This API supports only security and Microsoft 365 groups.
78+
- You're attempting to add a member you don't have permissions to add. Refer to the preceding [Permissions](#permissions) section for the permissions required to add different member types.
79+
- You're attempting to add a member to a role-assignable group and you don't have the required permissions.
7680

7781
## Examples
7882

api-reference/v1.0/resources/onlinemeeting.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ Contains information about a meeting, including the URL used to join a meeting,
4545
| allowMeetingChat | [meetingChatMode](#meetingchatmode-values) | Specifies the mode of meeting chat. Inherited from [onlineMeetingBase](../resources/onlineMeetingBase.md). |
4646
| allowParticipantsToChangeName | Boolean | Specifies if participants are allowed to rename themselves in an instance of the meeting. Inherited from [onlineMeetingBase](../resources/onlineMeetingBase.md). |
4747
| allowTeamworkReactions | Boolean | Indicates whether Teams reactions are enabled for the meeting. Inherited from [onlineMeetingBase](../resources/onlineMeetingBase.md). |
48+
| allowRecording | Boolean | Indicates whether recording is enabled for the meeting. Inherited from [onlineMeetingBase](../resources/onlinemeetingbase.md). |
49+
| allowTranscription | Boolean | Indicates whether transcription is enabled for the meeting. Inherited from [onlineMeetingBase](../resources/onlinemeetingbase.md). |
4850
| audioConferencing | [audioConferencing](audioconferencing.md) | The phone access (dial-in) information for an online meeting. Read-only. Inherited from [onlineMeetingBase](../resources/onlineMeetingBase.md). |
4951
| chatInfo | [chatInfo](chatinfo.md) | The chat information associated with this online meeting. Inherited from [onlineMeetingBase](../resources/onlineMeetingBase.md). |
5052
| creationDateTime | DateTime | The meeting creation time in UTC. Read-only. |

api-reference/v1.0/resources/onlinemeetingbase.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ The following JSON representation shows the resource type.
9898
"allowMeetingChat": {"@odata.type": "microsoft.graph.meetingChatMode"},
9999
"allowTeamworkReactions": "Boolean",
100100
"allowedPresenters": "String",
101+
"allowRecording": "Boolean",
102+
"allowTranscription": "Boolean",
101103
"anonymizeIdentityForRoles": ["String"],
102104
"audioConferencing": {"@odata.type": "microsoft.graph.audioConferencing"},
103105
"chatInfo": {"@odata.type": "microsoft.graph.chatInfo"},

changelog/Microsoft.IdentityProtectionServices.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,24 @@
3636
"WorkloadArea": "Identity and access",
3737
"SubArea": "Identity and sign-in"
3838
},
39+
{
40+
"ChangeList": [
41+
{
42+
"Id": "95e7994e-b2ca-48bd-bc51-173812e9422a",
43+
"ApiChange": "Property",
44+
"ChangedApiName": "riskEventType",
45+
"ChangeType": "Change",
46+
"Description": "Added `suspiciousAPITraffic` as a supported value for the **riskEventType** property in the [servicePrincipalRiskDetection](https://learn.microsoft.com/en-us/graph/api/resources/serviceprincipalriskdetection?view=graph-rest-v1.0) resource.",
47+
"Target": "servicePrincipalRiskDetection"
48+
}
49+
],
50+
"Id": "95e7994e-b2ca-48bd-bc51-173812e9422a",
51+
"Cloud": "Prod",
52+
"Version": "v1.0",
53+
"CreatedDateTime": "2025-01-15T22:19:32.3422617Z",
54+
"WorkloadArea": "Identity and access",
55+
"SubArea": "Identity and sign-in"
56+
},
3957
{
4058
"ChangeList": [
4159
{

changelog/Microsoft.Skype.Calling.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,31 @@
11
{
22
"changelog": [
3+
{
4+
"ChangeList": [
5+
{
6+
"Id": "e9108fde-6bae-4b24-a1ab-993bb6f9ac23",
7+
"ApiChange": "Property",
8+
"ChangedApiName": "allowRecording",
9+
"ChangeType": "Addition",
10+
"Description": "Added the **allowRecording** property to the [onlineMeetingBase](https://learn.microsoft.com/en-us/graph/api/resources/onlineMeetingBase?view=graph-rest-1.0) resource.",
11+
"Target": "onlineMeetingBase"
12+
},
13+
{
14+
"Id": "e9108fde-6bae-4b24-a1ab-993bb6f9ac23",
15+
"ApiChange": "Property",
16+
"ChangedApiName": "allowTranscription",
17+
"ChangeType": "Addition",
18+
"Description": "Added the **allowTranscription** property to the [onlineMeetingBase](https://learn.microsoft.com/en-us/graph/api/resources/onlineMeetingBase?view=graph-rest-1.0) resource.",
19+
"Target": "onlineMeetingBase"
20+
}
21+
],
22+
"Id": "e9108fde-6bae-4b24-a1ab-993bb6f9ac23",
23+
"Cloud": "Prod",
24+
"Version": "v1.0",
25+
"CreatedDateTime": "2025-01-15T20:42:00.4091409Z",
26+
"WorkloadArea": "Cloud communications",
27+
"SubArea": "Call"
28+
},
329
{
430
"ChangeList": [
531
{

changelog/Microsoft.Teams.Core.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5712,9 +5712,9 @@
57125712
"Id": "f9666fc8-6101-4ca6-bd26-3f11395ffc5f",
57135713
"Cloud": "Prod",
57145714
"Version": "v1.0",
5715-
"CreatedDateTime": "2024-10-08T18:15:55.2254479Z",
5715+
"CreatedDateTime": "2025-01-14T18:15:55.2254479Z",
57165716
"WorkloadArea": "Teamwork and communications",
5717-
"SubArea": ""
5717+
"SubArea": "Messaging"
57185718
},
57195719
{
57205720
"ChangeList": [

concepts/change-notifications-delivery-webhooks.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.topic: how-to
88
ms.subservice: change-notifications
99
ms.localizationpriority: high
1010
ms.custom: graphiamtop20
11-
ms.date: 01/03/2024
11+
ms.date: 01/15/2025
1212
#customer intent: As a developer, I want to receive notifications of changes to specific Microsoft Graph resources through webhooks, so that I can build apps that process the changes according to business requirements.
1313
---
1414

@@ -23,6 +23,7 @@ The article guides you through the process of implementing your webhook endpoint
2323
For details about how to create change notifications, see [Microsoft Graph API change notifications](/graph/api/resources/change-notifications-api-overview).
2424

2525
## Considerations for a webhook endpoint
26+
2627
Before you can receive a notification via webhooks, you must create a publicly accessible, HTTPS-secured endpoint that is addressable via URL. If your endpoint isn't publicly accessible, Microsoft Graph doesn't send notifications to your endpoint.
2728

2829
Your endpoint must provide correct, consistent, and timely HTTP responses in order to reliably receive notifications. If an endpoint doesn't respond in a timely manner, the change notification service may begin to drop notifications. Dropped notifications can't be recovered.
@@ -52,13 +53,13 @@ For security and performance reasons, Microsoft Graph throttles notifications se
5253
If your endpoint is unable to meet these performance characteristics, consider using [Event Hubs](/graph/change-notifications-delivery-event-hubs) or [Event Grid](/azure/event-grid/subscribe-to-graph-api-events?context=graph/context) as a target for receiving notifications.
5354

5455
### Authentication
55-
When you create your subscription, an access token is sent to your endpoint. This access token is used only to check the validity of your endpoint and has a lifecycle different from that of your change notification subscription. This access token generally expires within 1 hour.
56+
When you create your subscription, an access token is sent to your endpoint. This access token is used only to check the validity of your endpoint and has a lifecycle different from your change notification subscription. This access token generally expires within 1 hour.
5657

57-
Your endpoint must be prepared to be regularly reauthorized by Microsoft Graph to ensure that Microsoft Graph can continue to deliver notifications to your endpoint.
58+
To ensure uninterrupted notifications, your endpoint must be prepared for regular reauthorization by Microsoft Graph.
5859

59-
If an access token expires, notifications aren't delivered. However, it doesn't trigger endpoint throttling behavior and Microsoft Graph continues to retry sending each notification for up to 4 hours. So if the access token is refreshed within 4 hours of expiration, unsent notifications are delivered.
60+
If an access token expires, notifications aren't delivered. However, it doesn't trigger endpoint throttling behavior and Microsoft Graph continues to retry sending each notification for up to 4 hours. So if the access token is refreshed within 4 hours of expiration, unsent notifications are delivered.
6061

61-
It's recommended that you add [lifecycle notifications](.\change-notifications-lifecycle-events.md) to your subscription to receive a warning about token expiration so you can reauthorize your endpoint in a timely manner.
62+
We recommend that you add [lifecycle notifications](.\change-notifications-lifecycle-events.md) to your subscription to receive a warning about token expiration so you can reauthorize your endpoint in a timely manner.
6263

6364
When you [renew your subscription](#renew-a-subscription), your access token is also refreshed.
6465

@@ -69,21 +70,22 @@ You can configure the firewall that protects your endpoint to allow inbound conn
6970
> The listed IP addresses that are used to deliver change notifications can be updated at any time without notice.
7071
7172
## Create a subscription
73+
7274
> [!IMPORTANT]
7375
> Multiple steps are required to ensure a secure communication channel is established and maintained between the Microsoft Graph change notifications service and your endpoint.
7476
7577
To start receiving Microsoft Graph change notifications, you must create a subscription using the URL of your endpoint (notification URL) to establish the subscription. The pattern of establishing a subscription is as follows:
7678

7779
1. The client app sends a subscription request to subscribe to changes on a specific resource.
7880

79-
1. Microsoft Graph checks the request.
81+
2. Microsoft Graph checks the request.
8082

8183
- If the request is valid, Microsoft Graph sends a validation token to the notification URL for the client app to validate the notification URL.
8284
- If the request is invalid, Microsoft Graph sends an error response with an error code and details.
8385

84-
1. When the client receives the notification URL validation request, the client responds with the validation token in plain text.
86+
3. When the client receives the notification URL validation request, the client responds with the validation token in plain text.
8587

86-
1. Microsoft Graph validates the client's validation token response and if the validation token is valid, responds with a subscription ID.
88+
4. Microsoft Graph validates the client's validation token response and if the validation token is valid, responds with a subscription ID.
8789

8890
### Subscription request
8991

@@ -151,7 +153,7 @@ Each subscription has a unique **subscriptionId**, even if you have multiple sub
151153
> [!NOTE]
152154
> Any query string parameter included in the **notificationUrl** property is included in the HTTP POST request when notifications are being delivered to your service.
153155
>
154-
> Duplicate subscriptions are not allowed. When a subscription request contains the same values for **changeType** and **resource** as an existing subscription, the request fails with an HTTP error code `409 Conflict`, and the error message `Subscription Id <> already exists for the requested combination`.
156+
> Duplicate subscriptions aren't allowed. When a subscription request contains the same values for **changeType** and **resource** as an existing subscription, the request fails with an HTTP error code `409 Conflict`, and the error message `Subscription Id <> already exists for the requested combination`.
155157
156158
#### notificationUrl validation
157159

@@ -321,7 +323,7 @@ When you subscribe to lifecycle notifications, Microsoft Graph alerts you:
321323
- When a tenant administrator revokes your app's permissions to read a resource.
322324

323325
> [!NOTE]
324-
> If an access token expires, notifications are not delivered to the endpoint. But Microsoft Graph continues to retry sending each notification for up to 4 hours. So if the access token is refreshed within 4 hours of expiration, unsent notifications are delivered.
326+
> If an access token expires, notifications aren't delivered to the endpoint. But Microsoft Graph continues to retry sending each notification for up to 4 hours. So if the access token is refreshed within 4 hours of expiration, unsent notifications are delivered.
325327
326328
For more information on how to utilize lifecycle notifications for your subscription, see [lifecycle notifications](/graph/change-notifications-lifecycle-events).
327329

0 commit comments

Comments
 (0)