diff --git a/docs/guides/psoxy-test-tool.md b/docs/guides/psoxy-test-tool.md index 8996b5521e..012f53be1d 100644 --- a/docs/guides/psoxy-test-tool.md +++ b/docs/guides/psoxy-test-tool.md @@ -129,6 +129,18 @@ node cli-call.js -u https://us-central1-acme.cloudfunctions.net -d zoom Notice how the URL changes, and any other option the Psoxy may need doesn't. +#### Pagination (Microsoft Graph data sources) + +Collection-returning endpoints for all Microsoft Graph data sources (`msft-entra-id`, `outlook-cal`, `outlook-mail`, `msft-teams`, `msft-copilot`, `msft-onedrive`) are marked in the spec (`data-sources/spec.js`) with `pagination: true`, but this is opt-in at runtime: pass `--paginate` to enable it. Without the flag, endpoints run exactly one call each, with no `$top` or other pagination-only params added — the same behavior as before pagination support existed. + +With `--paginate`, endpoints marked `pagination: true` add `$top` (page size, default `1`) to their initial call and, if the response contains an `@odata.nextLink`, the runner follows it — rewriting the Graph `https://graph.microsoft.com/...` cursor URL to the equivalent path/query on your Psoxy deploy, so pagination is exercised through the proxy rather than calling Graph directly. Single-resource endpoints (e.g. `outlook-mail`'s `Mailbox Settings`) aren't marked paginated since Graph doesn't page those. + +By default the page size is `1` and up to 3 pages are followed per endpoint; override with `--page-size ` and `--max-pages `: + +```shell +node cli-call.js -u https://acme.lambda-url.us-east-1.on.aws -r -d msft-teams --paginate --page-size 50 --max-pages 5 +``` + ### Zoom: finding a meeting that has a summary `GET /v2/meetings/{meetingId}/meeting_summary` requires a past meeting instance UUID where Zoom AI Companion actually produced a meeting summary. Numeric IDs from `GET /v2/users/{userId}/meetings` are scheduled meetings and usually return `Invalid meeting id`. diff --git a/docs/sources/google-workspace/calendar/example-api-responses/sanitized/calendarList.json b/docs/sources/google-workspace/calendar/example-api-responses/sanitized/calendarList.json index 1c62312430..4088563f8e 100644 --- a/docs/sources/google-workspace/calendar/example-api-responses/sanitized/calendarList.json +++ b/docs/sources/google-workspace/calendar/example-api-responses/sanitized/calendarList.json @@ -157,4 +157,4 @@ } } ] -} +} \ No newline at end of file diff --git a/docs/sources/google-workspace/calendar/example-api-responses/sanitized/event.json b/docs/sources/google-workspace/calendar/example-api-responses/sanitized/event.json index a44696e820..06d300704f 100644 --- a/docs/sources/google-workspace/calendar/example-api-responses/sanitized/event.json +++ b/docs/sources/google-workspace/calendar/example-api-responses/sanitized/event.json @@ -61,4 +61,4 @@ "useDefault":true }, "eventType":"default" -} +} \ No newline at end of file diff --git a/docs/sources/google-workspace/calendar/example-api-responses/sanitized/events.json b/docs/sources/google-workspace/calendar/example-api-responses/sanitized/events.json index a4cc3bbde7..a365cae3b3 100644 --- a/docs/sources/google-workspace/calendar/example-api-responses/sanitized/events.json +++ b/docs/sources/google-workspace/calendar/example-api-responses/sanitized/events.json @@ -820,4 +820,4 @@ "eventType":"default" } ] -} +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/entra-id/entra-id.yaml b/docs/sources/microsoft-365/entra-id/entra-id.yaml index eba4c45dd6..dc5869e3ee 100644 --- a/docs/sources/microsoft-365/entra-id/entra-id.yaml +++ b/docs/sources/microsoft-365/entra-id/entra-id.yaml @@ -1,38 +1,61 @@ --- endpoints: - - pathRegex: "^/v1.0/users/?[^/]*" + - pathRegex: "^/v1.0/groups/?(\\?.*)?$" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..mail" + includeOriginal: true + encoding: "JSON" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphGroup" + - pathRegex: "^/v1.0/groups/[^/?]+(\\?.*)?$" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..mail" + includeOriginal: true + encoding: "JSON" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + id: + type: "string" + mail: + type: "string" + - pathRegex: "^/v1.0/groups/[^/]*/members.*" allowedQueryParams: - "$top" - "$select" - "$skiptoken" - "$orderBy" - "$count" - - "$filter" allowedRequestHeaders: - "ConsistencyLevel" transforms: - - ! - jsonPaths: - - "$..proxyAddresses[*]" - regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" - ! jsonPaths: - "$..employeeId" @@ -46,66 +69,70 @@ endpoints: - "$..onPremisesImmutableId" - "$..identities[*].issuerAssignedId" encoding: "URL_SAFE_TOKEN" - - pathRegex: "^/v1.0/groups/?[^/]*" - allowedRequestHeaders: - - "ConsistencyLevel" - transforms: - ! jsonPaths: - "$..proxyAddresses[*]" regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..owners" - - "$..rejectedSenders" - - "$..acceptedSenders" - - "$..members" - - "$..membersWithLicenseErrors" - - "$..mailNickname" - - "$..description" - - "$..resourceBehaviorOptions" - - "$..resourceProvisioningOptions" - - "$..onPremisesSamAccountName" - - "$..onPremisesSecurityIdentifier" - - "$..onPremisesProvisioningErrors" - - "$..securityIdentifier" - - ! - jsonPaths: - - "$..mail" - includeOriginal: true - encoding: "JSON" - - pathRegex: "^/v1.0/groups/[^/]*/members.*" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphGroupMember" + - pathRegex: "^/v1.0/users/?(\\?.*)?$" allowedQueryParams: - "$top" - "$select" - "$skiptoken" - "$orderBy" - "$count" + - "$filter" allowedRequestHeaders: - "ConsistencyLevel" transforms: + - ! + jsonPaths: + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" - ! jsonPaths: - "$..proxyAddresses[*]" regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphUser" + - pathRegex: "^/v1.0/users/[^/?]+(\\?.*)?$" + allowedQueryParams: + - "$select" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: - ! jsonPaths: - "$..employeeId" @@ -119,3 +146,169 @@ endpoints: - "$..onPremisesImmutableId" - "$..identities[*].issuerAssignedId" encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" +definitions: + AutomaticRepliesSettings: + type: "object" + properties: + externalAudience: + type: "string" + scheduledEndDateTime: + $ref: "#/definitions/DateTimeTimeZone" + scheduledStartDateTime: + $ref: "#/definitions/DateTimeTimeZone" + status: + type: "string" + CustomTimeZone: + type: "object" + properties: + '@odata.type': + type: "string" + bias: + type: "integer" + daylightOffset: + $ref: "#/definitions/Offset" + name: + type: "string" + standardOffset: + $ref: "#/definitions/Offset" + DateTimeTimeZone: + type: "object" + properties: + dateTime: + type: "string" + format: "date-time" + timeZone: + type: "string" + timeZoneIANA: + type: "string" + GraphGroup: + type: "object" + properties: + id: + type: "string" + mail: + type: "string" + GraphGroupMember: + type: "object" + properties: + id: + type: "string" + GraphUser: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" + LocaleInfo: + type: "object" + properties: + displayName: + type: "string" + locale: + type: "string" + MailboxSettings: + type: "object" + properties: + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + Offset: + type: "object" + properties: + dayOccurrence: + type: "integer" + dayOfWeek: + type: "string" + daylightBias: + type: "integer" + month: + type: "integer" + time: + type: "string" + year: + type: "integer" + WorkingHours: + type: "object" + properties: + daysOfWeek: + type: "array" + items: + type: "string" + endTime: + type: "string" + format: "time" + startTime: + type: "string" + format: "time" + timeZone: + anyOf: + - $ref: "#/definitions/CustomTimeZone" diff --git a/docs/sources/microsoft-365/entra-id/entra-id_no-app-ids.yaml b/docs/sources/microsoft-365/entra-id/entra-id_no-app-ids.yaml index 836364ddd8..7712808a0f 100644 --- a/docs/sources/microsoft-365/entra-id/entra-id_no-app-ids.yaml +++ b/docs/sources/microsoft-365/entra-id/entra-id_no-app-ids.yaml @@ -1,38 +1,61 @@ --- endpoints: - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*" + - pathRegex: "^/v1.0/groups/?(\\?.*)?$" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..mail" + includeOriginal: true + encoding: "JSON" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphGroup" + - pathRegex: "^/v1.0/groups/[^/?]+(\\?.*)?$" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..mail" + includeOriginal: true + encoding: "JSON" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + id: + type: "string" + mail: + type: "string" + - pathRegex: "^/v1.0/groups/[^/]*/members.*" allowedQueryParams: - "$top" - "$select" - "$skiptoken" - "$orderBy" - "$count" - - "$filter" allowedRequestHeaders: - "ConsistencyLevel" transforms: - - ! - jsonPaths: - - "$..proxyAddresses[*]" - regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" - ! jsonPaths: - "$..employeeId" @@ -49,68 +72,76 @@ endpoints: - ! jsonPaths: - "$..id" - includeReversible: true encoding: "URL_SAFE_TOKEN" - - pathRegex: "^/v1.0/groups/?[^/]*" - allowedRequestHeaders: - - "ConsistencyLevel" - transforms: - ! jsonPaths: - "$..proxyAddresses[*]" regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..owners" - - "$..rejectedSenders" - - "$..acceptedSenders" - - "$..members" - - "$..membersWithLicenseErrors" - - "$..mailNickname" - - "$..description" - - "$..resourceBehaviorOptions" - - "$..resourceProvisioningOptions" - - "$..onPremisesSamAccountName" - - "$..onPremisesSecurityIdentifier" - - "$..onPremisesProvisioningErrors" - - "$..securityIdentifier" - - ! - jsonPaths: - - "$..mail" - includeOriginal: true - encoding: "JSON" - - pathRegex: "^/v1.0/groups/[^/]*/members.*" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphGroupMember" + - pathRegex: "^/v1.0/users(\\?.*)?$" allowedQueryParams: - "$top" - "$select" - "$skiptoken" - "$orderBy" - "$count" + - "$filter" allowedRequestHeaders: - "ConsistencyLevel" transforms: + - ! + jsonPaths: + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..id" + includeReversible: true + encoding: "URL_SAFE_TOKEN" - ! jsonPaths: - "$..proxyAddresses[*]" regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphUser" + - pathRegex: "^/v1.0/users/p~[a-zA-Z0-9_-]+(\\?.*)?$" + allowedQueryParams: + - "$select" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: - ! jsonPaths: - "$..employeeId" @@ -127,4 +158,171 @@ endpoints: - ! jsonPaths: - "$..id" + includeReversible: true encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" +definitions: + AutomaticRepliesSettings: + type: "object" + properties: + externalAudience: + type: "string" + scheduledEndDateTime: + $ref: "#/definitions/DateTimeTimeZone" + scheduledStartDateTime: + $ref: "#/definitions/DateTimeTimeZone" + status: + type: "string" + CustomTimeZone: + type: "object" + properties: + '@odata.type': + type: "string" + bias: + type: "integer" + daylightOffset: + $ref: "#/definitions/Offset" + name: + type: "string" + standardOffset: + $ref: "#/definitions/Offset" + DateTimeTimeZone: + type: "object" + properties: + dateTime: + type: "string" + format: "date-time" + timeZone: + type: "string" + timeZoneIANA: + type: "string" + GraphGroup: + type: "object" + properties: + id: + type: "string" + mail: + type: "string" + GraphGroupMember: + type: "object" + properties: + id: + type: "string" + GraphUser: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" + LocaleInfo: + type: "object" + properties: + displayName: + type: "string" + locale: + type: "string" + MailboxSettings: + type: "object" + properties: + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + Offset: + type: "object" + properties: + dayOccurrence: + type: "integer" + dayOfWeek: + type: "string" + daylightBias: + type: "integer" + month: + type: "integer" + time: + type: "string" + year: + type: "integer" + WorkingHours: + type: "object" + properties: + daysOfWeek: + type: "array" + items: + type: "string" + endTime: + type: "string" + format: "time" + startTime: + type: "string" + format: "time" + timeZone: + anyOf: + - $ref: "#/definitions/CustomTimeZone" diff --git a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/group-members.json b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/group-members.json index 303d57b286..9e86c4368c 100644 --- a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/group-members.json +++ b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/group-members.json @@ -1,176 +1,61 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#directoryObjects", "value":[ { - "@odata.type":"#microsoft.graph.user", - "id":"87d349ed-44d7-43e1-9a83-5f2406dee5bd", - "businessPhones":[ ], - "mail":"t~1ZU-v2EwymdtJwCKzuncgUnOxX8V-MbE-FgKEvcj6J8@M365x214355.onmicrosoft.com", - "officeLocation":"18/2111", - "preferredLanguage":"en-US", - "userPrincipalName":"t~1ZU-v2EwymdtJwCKzuncgUnOxX8V-MbE-FgKEvcj6J8@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"626cbf8c-5dde-46b0-8385-9e40d64736fe", - "businessPhones":[ ], - "mail":"t~KDHHtwETokpIrd-0CMxrNe2pku8bSufS9D5ZG5gdKrg@M365x214355.onmicrosoft.com", - "officeLocation":"23/2102", - "preferredLanguage":"en-US", - "userPrincipalName":"t~KDHHtwETokpIrd-0CMxrNe2pku8bSufS9D5ZG5gdKrg@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"40079818-3808-4585-903b-02605f061225", - "businessPhones":[ ], - "mail":"t~yXsuWvjfGM2Okdqi_8ytlEfiN7dNqY_IfJEyzEE9jWo@M365x214355.onmicrosoft.com", - "officeLocation":"15/1102", - "preferredLanguage":"en-US", - "userPrincipalName":"t~yXsuWvjfGM2Okdqi_8ytlEfiN7dNqY_IfJEyzEE9jWo@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"074e56ea-0b50-4461-89e5-c67ae14a2c0b", - "businessPhones":[ ], - "mail":"t~ozJYl2KkP4ztQiof64QWgNtS5hx1czNS6pawH3v0AZw@M365x214355.onmicrosoft.com", - "officeLocation":"23/3101", - "preferredLanguage":"en-US", - "userPrincipalName":"t~ozJYl2KkP4ztQiof64QWgNtS5hx1czNS6pawH3v0AZw@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"16cfe710-1625-4806-9990-91b8f0afee35", - "businessPhones":[ ], - "mail":"t~MVn_bPW8RmDL-2W6UHPPtKjrI0KVxRk08ZNvfUOnSjg@M365x214355.onmicrosoft.com", - "officeLocation":"14/1102", - "preferredLanguage":"en-US", - "userPrincipalName":"t~MVn_bPW8RmDL-2W6UHPPtKjrI0KVxRk08ZNvfUOnSjg@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"089a6bb8-e8cb-492c-aa41-c078aa0b5120", - "businessPhones":[ ], - "mail":"t~DUyi5q8wChUJyCkMpodc7ASWD4pD-dW9GgQd6xLZQL4@M365x214355.onmicrosoft.com", - "officeLocation":"36/2121", - "preferredLanguage":"en-US", - "userPrincipalName":"t~DUyi5q8wChUJyCkMpodc7ASWD4pD-dW9GgQd6xLZQL4@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"2804bc07-1e1f-4938-9085-ce6d756a32d2", - "businessPhones":[ ], - "mail":"t~uTOzTJCFx4Qkj3_IAlznPQcud3ixYia6avTR52T-Cy4@M365x214355.onmicrosoft.com", - "officeLocation":"97/2302", - "preferredLanguage":"en-US", - "userPrincipalName":"t~uTOzTJCFx4Qkj3_IAlznPQcud3ixYia6avTR52T-Cy4@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"b66ecf79-a093-4d51-86e0-efcc4531f37a", - "businessPhones":[ ], - "mail":"t~xrI7EzSIq--CC6P9nUMgEfPMi4Op5rBR66-6nr1QwUI@M365x214355.onmicrosoft.com", - "officeLocation":"131/2105", - "preferredLanguage":"en-US", - "userPrincipalName":"t~xrI7EzSIq--CC6P9nUMgEfPMi4Op5rBR66-6nr1QwUI@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"8b209ac8-08ff-4ef1-896d-3b9fde0bbf04", - "businessPhones":[ ], - "mail":"t~yUp1exGSyddJ3c1HtMLtAg4YSVUlV3s5VSyz8iWgCiY@M365x214355.onmicrosoft.com", - "officeLocation":"20/1109", - "preferredLanguage":"en-US", - "userPrincipalName":"t~yUp1exGSyddJ3c1HtMLtAg4YSVUlV3s5VSyz8iWgCiY@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"4782e723-f4f4-4af3-a76e-25e3bab0d896", - "businessPhones":[ ], - "mail":"t~Obq2eJM8H6PaBmbsLgcx0lmrKetFS9OTpk2LuaA-goI@M365x214355.onmicrosoft.com", - "officeLocation":"131/1104", - "preferredLanguage":"en-US", - "userPrincipalName":"t~Obq2eJM8H6PaBmbsLgcx0lmrKetFS9OTpk2LuaA-goI@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"08fa38e4-cbfa-4488-94ed-c834da6539df", - "businessPhones":[ ], - "mail":"t~mMw0NyWtsdA7ZqfNWAc63W4_UOAAS9wxZZAEzIsOkAw@M365x214355.onmicrosoft.com", - "officeLocation":"131/2103", - "preferredLanguage":"en-US", - "userPrincipalName":"t~mMw0NyWtsdA7ZqfNWAc63W4_UOAAS9wxZZAEzIsOkAw@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"24fcbca3-c3e2-48bf-9ffc-c7f81b81483d", - "businessPhones":[ ], - "mail":"t~VzIqpdtScbANlMr2k0A3A2IqLLBFnoDu7gtw90wPEJc@M365x214355.onmicrosoft.com", - "officeLocation":"14/1108", - "preferredLanguage":"en-US", - "userPrincipalName":"t~VzIqpdtScbANlMr2k0A3A2IqLLBFnoDu7gtw90wPEJc@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"2ed03dfd-01d8-4005-a9ef-fa8ee546dc6c", - "businessPhones":[ ], - "mail":"t~HRu855Q5bqB3kj1bf9LTO_ykCwHLiAklcYWUdvvIZU8@M365x214355.onmicrosoft.com", - "officeLocation":"20/2107", - "preferredLanguage":"en-US", - "userPrincipalName":"t~HRu855Q5bqB3kj1bf9LTO_ykCwHLiAklcYWUdvvIZU8@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"df043ff1-49d5-414e-86a4-0c7f239c36cf", - "businessPhones":[ ], - "mail":"t~PS5V_GyzVyXk6jjkY-cKVd9UubD2yEntUABT3W6PyT0@M365x214355.onmicrosoft.com", - "officeLocation":"19/2109", - "preferredLanguage":"en-US", - "userPrincipalName":"t~PS5V_GyzVyXk6jjkY-cKVd9UubD2yEntUABT3W6PyT0@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"ec63c778-24e1-4240-bea3-d12a167d5232", - "businessPhones":[ ], - "mail":"t~sQ8f9DihI2g9i17LxQ_GdZsNkUYpKp5A82AXup1YDwQ@M365x214355.onmicrosoft.com", - "officeLocation":"98/2202", - "preferredLanguage":"en-US", - "userPrincipalName":"t~sQ8f9DihI2g9i17LxQ_GdZsNkUYpKp5A82AXup1YDwQ@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"48d31887-5fad-4d73-a9f5-3c356e68a038", - "businessPhones":[ ], - "mail":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", - "officeLocation":"12/1110", - "preferredLanguage":"en-US", - "userPrincipalName":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"e8a02cc7-df4d-4778-956d-784cc9506e5a", - "businessPhones":[ ], - "mail":"t~35oOumhzn8j-tFjW0z9p4J4Qn1R7MNx-ueJ0l_nbl2Q@M365x214355.onmicrosoft.com", - "officeLocation":"20/1104", - "preferredLanguage":"en-US", - "userPrincipalName":"t~35oOumhzn8j-tFjW0z9p4J4Qn1R7MNx-ueJ0l_nbl2Q@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"c8913c86-ceea-4d39-b1ea-f63a5b675166", - "businessPhones":[ ], - "mail":"t~xzuczado8k_3rlH_zDVGqdQF2xvtCsyfe50ss4MR280@M365x214355.onmicrosoft.com", - "officeLocation":"18/1106", - "preferredLanguage":"en-US", - "userPrincipalName":"t~xzuczado8k_3rlH_zDVGqdQF2xvtCsyfe50ss4MR280@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"e3d0513b-449e-4198-ba6f-bd97ae7cae85", - "businessPhones":[ ], - "mail":"t~wOJLeblkCPz-4kzW9KSFa2VafQ4IBEankxalIWAN6J8@M365x214355.onmicrosoft.com", - "officeLocation":"20/1101", - "preferredLanguage":"en-US", - "userPrincipalName":"t~wOJLeblkCPz-4kzW9KSFa2VafQ4IBEankxalIWAN6J8@M365x214355.onmicrosoft.com" + "id":"87d349ed-44d7-43e1-9a83-5f2406dee5bd" + }, + { + "id":"626cbf8c-5dde-46b0-8385-9e40d64736fe" + }, + { + "id":"40079818-3808-4585-903b-02605f061225" + }, + { + "id":"074e56ea-0b50-4461-89e5-c67ae14a2c0b" + }, + { + "id":"16cfe710-1625-4806-9990-91b8f0afee35" + }, + { + "id":"089a6bb8-e8cb-492c-aa41-c078aa0b5120" + }, + { + "id":"2804bc07-1e1f-4938-9085-ce6d756a32d2" + }, + { + "id":"b66ecf79-a093-4d51-86e0-efcc4531f37a" + }, + { + "id":"8b209ac8-08ff-4ef1-896d-3b9fde0bbf04" + }, + { + "id":"4782e723-f4f4-4af3-a76e-25e3bab0d896" + }, + { + "id":"08fa38e4-cbfa-4488-94ed-c834da6539df" + }, + { + "id":"24fcbca3-c3e2-48bf-9ffc-c7f81b81483d" + }, + { + "id":"2ed03dfd-01d8-4005-a9ef-fa8ee546dc6c" + }, + { + "id":"df043ff1-49d5-414e-86a4-0c7f239c36cf" + }, + { + "id":"ec63c778-24e1-4240-bea3-d12a167d5232" + }, + { + "id":"48d31887-5fad-4d73-a9f5-3c356e68a038" + }, + { + "id":"e8a02cc7-df4d-4778-956d-784cc9506e5a" + }, + { + "id":"c8913c86-ceea-4d39-b1ea-f63a5b675166" + }, + { + "id":"e3d0513b-449e-4198-ba6f-bd97ae7cae85" } ] -} \ No newline at end of file +} diff --git a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/group.json b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/group.json new file mode 100644 index 0000000000..ed69c28467 --- /dev/null +++ b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/group.json @@ -0,0 +1,4 @@ +{ + "id":"02bd9fd6-8f93-4758-87c3-1fb73740a315", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"fTO4QfBNOhWw3GVNW6CBnOEGcXqa--EgnerUt-o_xu0\",\"original\":\"HRTaskforce@M365x214355.onmicrosoft.com\"}" +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/groups.json b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/groups.json index ae4853d35c..033ac46f39 100644 --- a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/groups.json +++ b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/groups.json @@ -1,268 +1,200 @@ { - "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups", - "value": [ - { - "id": "0f107376-bec8-42e4-8c79-00736db6575f", - "deletedDateTime": null, - "classification": null, - "createdDateTime": "2020-04-14T06:12:26Z", - "creationOptions": [], - "displayName": "mail_test_group4", - "expirationDateTime": null, - "groupTypes": [], - "isAssignableToRole": null, - "mail": "{\"scope\":\"email\",\"domain\":\"worklytics.onmicrosoft.com\",\"hash\":\"GZrPPDzLlWVZT3LJ_JJI8RvS70CJRqQbyVsve1Nso8c\",\"original\":\"mail_test_group4@worklytics.onmicrosoft.com\"}", - "mailEnabled": true, - "membershipRule": null, - "membershipRuleProcessingState": null, - "onPremisesDomainName": null, - "onPremisesLastSyncDateTime": null, - "onPremisesNetBiosName": null, - "onPremisesSyncEnabled": null, - "preferredDataLocation": null, - "preferredLanguage": null, - "proxyAddresses": [ - "SMTP:t~GZrPPDzLlWVZT3LJ_JJI8RvS70CJRqQbyVsve1Nso8c@worklytics.onmicrosoft.com" - ], - "renewedDateTime": "2020-04-14T06:12:26Z", - "securityEnabled": true, - "theme": null, - "uniqueName": null, - "visibility": null, - "serviceProvisioningErrors": [] - }, - { - "id": "2d4002b0-7108-4432-83b3-beb3b670ee3c", - "deletedDateTime": null, - "classification": null, - "createdDateTime": "2020-06-05T15:57:52Z", - "creationOptions": [ - "Team", - "ExchangeProvisioningFlags:3552" - ], - "displayName": "Test Team", - "expirationDateTime": null, - "groupTypes": [ - "Unified" - ], - "isAssignableToRole": null, - "mail": "{\"scope\":\"email\",\"domain\":\"worklytics.onmicrosoft.com\",\"hash\":\"2MpWb9m8mrpB8LlcxntWRopl8gBrsyndpk8mrXaAcm8\",\"original\":\"TestTeam@worklytics.onmicrosoft.com\"}", - "mailEnabled": true, - "membershipRule": null, - "membershipRuleProcessingState": null, - "onPremisesDomainName": null, - "onPremisesLastSyncDateTime": null, - "onPremisesNetBiosName": null, - "onPremisesSyncEnabled": null, - "preferredDataLocation": null, - "preferredLanguage": null, - "proxyAddresses": [ - null, - "SMTP:t~2MpWb9m8mrpB8LlcxntWRopl8gBrsyndpk8mrXaAcm8@worklytics.onmicrosoft.com" - ], - "renewedDateTime": "2020-06-05T15:57:52Z", - "securityEnabled": false, - "theme": null, - "uniqueName": null, - "visibility": "Public", - "serviceProvisioningErrors": [] - }, - { - "id": "77470a20-0f4c-4d07-a803-f80867d2ee97", - "deletedDateTime": null, - "classification": null, - "createdDateTime": "2020-04-14T06:12:26Z", - "creationOptions": [], - "displayName": "mail_test_group3", - "expirationDateTime": null, - "groupTypes": [], - "isAssignableToRole": null, - "mail": "{\"scope\":\"email\",\"domain\":\"worklytics.onmicrosoft.com\",\"hash\":\"AUg6UqcrlLAj2y-Ng-IFcFWLfiTJISWuiZezIAzHB_M\",\"original\":\"mail_test_group3@worklytics.onmicrosoft.com\"}", - "mailEnabled": true, - "membershipRule": null, - "membershipRuleProcessingState": null, - "onPremisesDomainName": null, - "onPremisesLastSyncDateTime": null, - "onPremisesNetBiosName": null, - "onPremisesSyncEnabled": null, - "preferredDataLocation": null, - "preferredLanguage": null, - "proxyAddresses": [ - "SMTP:t~AUg6UqcrlLAj2y-Ng-IFcFWLfiTJISWuiZezIAzHB_M@worklytics.onmicrosoft.com" - ], - "renewedDateTime": "2020-04-14T06:12:26Z", - "securityEnabled": true, - "theme": null, - "uniqueName": null, - "visibility": null, - "serviceProvisioningErrors": [] - }, - { - "id": "9fa93021-4ab8-4ce3-8c85-dc5f174c5fbb", - "deletedDateTime": null, - "classification": null, - "createdDateTime": "2020-05-15T19:28:48Z", - "creationOptions": [ - "YammerProvisioning" - ], - "displayName": "All Company", - "expirationDateTime": null, - "groupTypes": [ - "Unified" - ], - "isAssignableToRole": null, - "mail": "{\"scope\":\"email\",\"domain\":\"worklytics.onmicrosoft.com\",\"hash\":\"9VSHmb7E9o3Do3sX3jJ48Z0pCFlPSP4MKmVC7MEyS2Q\",\"original\":\"AllCompany.5019332.klagxpeh@worklytics.onmicrosoft.com\"}", - "mailEnabled": true, - "membershipRule": null, - "membershipRuleProcessingState": null, - "onPremisesDomainName": null, - "onPremisesLastSyncDateTime": null, - "onPremisesNetBiosName": null, - "onPremisesSyncEnabled": null, - "preferredDataLocation": null, - "preferredLanguage": null, - "proxyAddresses": [ - null, - "SMTP:t~9VSHmb7E9o3Do3sX3jJ48Z0pCFlPSP4MKmVC7MEyS2Q@worklytics.onmicrosoft.com" - ], - "renewedDateTime": "2020-05-15T19:28:48Z", - "securityEnabled": false, - "theme": null, - "uniqueName": null, - "visibility": "Public", - "serviceProvisioningErrors": [] - }, - { - "id": "dfd625c6-8820-4b94-8e3b-2ffc06ebf461", - "deletedDateTime": null, - "classification": null, - "createdDateTime": "2020-04-14T06:12:26Z", - "creationOptions": [], - "displayName": "mail_test_group2", - "expirationDateTime": null, - "groupTypes": [], - "isAssignableToRole": null, - "mail": "{\"scope\":\"email\",\"domain\":\"worklytics.onmicrosoft.com\",\"hash\":\"lLqvKhbwX7H73BMEX1MtwmiUUC0DHVs_VnM1ajT93lg\",\"original\":\"mail_test_group2@worklytics.onmicrosoft.com\"}", - "mailEnabled": true, - "membershipRule": null, - "membershipRuleProcessingState": null, - "onPremisesDomainName": null, - "onPremisesLastSyncDateTime": null, - "onPremisesNetBiosName": null, - "onPremisesSyncEnabled": null, - "preferredDataLocation": null, - "preferredLanguage": null, - "proxyAddresses": [ - "SMTP:t~lLqvKhbwX7H73BMEX1MtwmiUUC0DHVs_VnM1ajT93lg@worklytics.onmicrosoft.com" - ], - "renewedDateTime": "2020-04-14T06:12:26Z", - "securityEnabled": true, - "theme": null, - "uniqueName": null, - "visibility": null, - "serviceProvisioningErrors": [] - }, - { - "id": "dfd781cf-6ddb-49b7-9687-2d91f05e000c", - "deletedDateTime": null, - "classification": null, - "createdDateTime": "2016-09-30T18:48:33Z", - "creationOptions": [], - "displayName": "Founders", - "expirationDateTime": null, - "groupTypes": [ - "Unified" - ], - "isAssignableToRole": null, - "mail": "{\"scope\":\"email\",\"domain\":\"worklytics.onmicrosoft.com\",\"hash\":\"_0ZFgPH2Mh8tzN1IrOJk-yF-nW_UPkY2woYTlKIhSys\",\"original\":\"founders@worklytics.onmicrosoft.com\"}", - "mailEnabled": true, - "membershipRule": null, - "membershipRuleProcessingState": null, - "onPremisesDomainName": null, - "onPremisesLastSyncDateTime": null, - "onPremisesNetBiosName": null, - "onPremisesSyncEnabled": null, - "preferredDataLocation": null, - "preferredLanguage": null, - "proxyAddresses": [ - "SMTP:t~_0ZFgPH2Mh8tzN1IrOJk-yF-nW_UPkY2woYTlKIhSys@worklytics.onmicrosoft.com", - null - ], - "renewedDateTime": "2016-09-30T18:48:33Z", - "securityEnabled": false, - "theme": null, - "uniqueName": null, - "visibility": "Private", - "serviceProvisioningErrors": [] - }, - { - "id": "e647dac2-172c-4582-93aa-cd70924083ac", - "deletedDateTime": null, - "classification": null, - "createdDateTime": "2020-01-24T22:45:45Z", - "creationOptions": [], - "displayName": "mail_security_test", - "expirationDateTime": null, - "groupTypes": [ - "Unified" - ], - "isAssignableToRole": null, - "mail": "{\"scope\":\"email\",\"domain\":\"worklytics.onmicrosoft.com\",\"hash\":\"o4Q7jJ1P5n5t-P34Nuvhh1-ofJC71U9SyXayRs5q5i0\",\"original\":\"secure_group@worklytics.onmicrosoft.com\"}", - "mailEnabled": true, - "membershipRule": null, - "membershipRuleProcessingState": null, - "onPremisesDomainName": null, - "onPremisesLastSyncDateTime": null, - "onPremisesNetBiosName": null, - "onPremisesSyncEnabled": null, - "preferredDataLocation": null, - "preferredLanguage": null, - "proxyAddresses": [ - null, - "smtp:t~sVSNTe8RpiUGHVCcTFm2kr6UzSrgbhlcuKxJa937l2w@worklytics.onmicrosoft.com", - "SMTP:t~o4Q7jJ1P5n5t-P34Nuvhh1-ofJC71U9SyXayRs5q5i0@worklytics.onmicrosoft.com" - ], - "renewedDateTime": "2020-01-24T22:45:45Z", - "securityEnabled": false, - "theme": null, - "uniqueName": null, - "visibility": "Private", - "serviceProvisioningErrors": [] - }, - { - "id": "f4e8dd44-7b57-4055-bb1a-66a14be1e0f9", - "deletedDateTime": null, - "classification": null, - "createdDateTime": "2023-03-28T06:12:45Z", - "creationOptions": [ - "YammerProvisioning" - ], - "displayName": "Group for Answers in Viva Engage – DO NOT DELETE 5019332", - "expirationDateTime": null, - "groupTypes": [ - "Unified" - ], - "isAssignableToRole": null, - "mail": "{\"scope\":\"email\",\"domain\":\"worklytics.onmicrosoft.com\",\"hash\":\"glkvXmo9_l-emRil-v-8TB9oFeDGTAWAYmGocoJQ3Ek\",\"original\":\"groupforanswersinvivaengagedonotdelete5019332585@worklytics.onmicrosoft.com\"}", - "mailEnabled": true, - "membershipRule": null, - "membershipRuleProcessingState": null, - "onPremisesDomainName": null, - "onPremisesLastSyncDateTime": null, - "onPremisesNetBiosName": null, - "onPremisesSyncEnabled": null, - "preferredDataLocation": null, - "preferredLanguage": null, - "proxyAddresses": [ - null, - "SMTP:t~glkvXmo9_l-emRil-v-8TB9oFeDGTAWAYmGocoJQ3Ek@worklytics.onmicrosoft.com" - ], - "renewedDateTime": "2023-03-28T06:12:45Z", - "securityEnabled": false, - "theme": null, - "uniqueName": null, - "visibility": "Public", - "serviceProvisioningErrors": [] + "value":[ + { + "id":"02bd9fd6-8f93-4758-87c3-1fb73740a315", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"fTO4QfBNOhWw3GVNW6CBnOEGcXqa--EgnerUt-o_xu0\",\"original\":\"HRTaskforce@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"06f62f70-9827-4e6e-93ef-8e0f2d9b7b23", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"bff4fFVStB69yOPoftP4TjhCVSyvx8nK4PU7JLXTVLY\",\"original\":\"VideoProduction@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"0a53828f-36c9-44c3-be3d-99a7fce977ac", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"YxNRGJhmxyuiroeDVwx04GRrq1z1XEkdaVT8Zx4x_ic\",\"original\":\"marketingcampaigns@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"1381c058-2ee8-41ce-a005-aae7d91fe086", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"xKNSc-94c7-j-VnzbCxBsuvc3PNVPOszH8Hr34s8vmg\",\"original\":\"Ideas@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"13be6971-79db-4f33-9d41-b25589ca25af", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"hm1o7wNzmcEvTI_NJPyMkA6wT8Fp75jnuHE3H8ZAHwY\",\"original\":\"BusinessDevelopment@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"14d0da09-90ed-4ec6-a7b1-8e234e542fff", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"dWRPoM_hQdFxGe03aDmzl1JZR6NUYoUTW8bzuxE9wOA\",\"original\":\"qualityassurance@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"1c602d17-dd54-416b-b172-f3d070df0d64", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"r0ku-dcmN14jOHEs0zt74Vwexg3bH9fqqnWtdnvEBFU\",\"original\":\"newMan201703@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"1e770bc2-3c5f-487f-871f-16fbdf1c8ed8", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"VPrbqKvCddh-F4QIQnJx2YtrV8zyaLAtpvNxJWuhN80\",\"original\":\"Activewear@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"26496b80-7c41-4e72-bcda-12aec3c7ad8b", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"l4idaAIvZAHAB_MkEVRYdi16qGf66Ezvj5OccapMjCU\",\"original\":\"socialcampaigns@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"278cd687-5121-43cd-b397-ec45f432c4f8", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"3LjcWzI5hgeGfd8RfYCRlcAaxSIlzIFvDtyHJfSR-jc\",\"original\":\"softwaredevelopment@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"33b43a5b-87d6-41ec-91f8-a2610048105f", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"JI66UTnFUIE9eS_6rk-l2mS-K5OhqMj1oQOc58mmtt8\",\"original\":\"Marketing@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"56e1d078-2ec9-40aa-8f24-042d393c79cd", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"MSP-H-cO0OzPFSNczE1Lh1EiH1KN67lj3dXVZ5wPO5I\",\"original\":\"itdepartment@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"5b22aa31-973b-4457-8d41-53c0f06117b9", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"4DsjGcFEpmw6GKrC4TBxxWjHZd0TOEOJtxp090Cx01w\",\"original\":\"Northwind@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"5c9f8694-89f3-4a5a-84ff-10c18315fbff", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"VSMCkcK6eo6ZjVFvT0EbqH8Towo92jumBtIAtJ1Kf3o\",\"original\":\"productlaunch@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"733b514d-790b-4542-9efd-1558644d8b1e", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"dACwODZ3Rk04x6xqu8h4hsmjP70xT71FExx18F9Hllc\",\"original\":\"NegotiationForBeginners@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"7e4ec76c-8276-43ef-ba10-9aaa197cb212", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"TkNLRyQRmqZIUOqVaJmEgCzC151etojtFvsnWjTto8s\",\"original\":\"Leadership101@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"7fb15d45-c47d-4364-b6e6-96e649d635f5", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"96FJAVm-7y4Wc6q8r369B-2kCDIRbi2jj8Z-UpdX-A4\",\"original\":\"operationsandfacilities@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"801f2093-de7e-4883-a786-8a5f30874ff4", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"iQ0xBole1D0O3ZEreWKbgVmEG_iPXtarARD9R4w6Oyk\",\"original\":\"GrowingFutureLeaders@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"8090c93e-ba7c-433e-9f39-08c7ba07c0b3", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"FNAjvrrHAXFucVsBAsvOJRF3jbe63hpR9nlut1Vpplg\",\"original\":\"X1050LaunchTeam@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"80b12dc5-31d5-4094-98bb-c5eb3ab7fb77", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"RghFDmSo21stGVQqsvwnjCBzAqRdbDoHCqebPqXsIl0\",\"original\":\"Legal2@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"832f20ff-f7a5-4e44-be9d-02a33fe18938", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"z2VSyfOs8YvKkDd7G0Ax3mQPyZI_Ktvq7CvEXYNdp44\",\"original\":\"telemedicineworkflow@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"8540ce78-1d6e-4e1f-957a-15507a636988", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"IBE5hivAbcBqnc1ImKUrnXMAJ8TdqM78s6qAXBsDpH4\",\"original\":\"productlaunchevent@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"8da06639-1730-4ad1-830a-29a5fe506104", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"Gz_iLtI9PORU_KM3bUduz6JfLnPHMSOvTEqcNMNggds\",\"original\":\"itsupport@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"914dd61c-09ae-4ce5-8452-6d43606d38b0", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"yGi8dGYYFvH-zSyjpDpMMHlKWcSG2LwLbtqcR8GA3Dk\",\"original\":\"ProductLaunchfollow-up@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"94cb7dd0-cb3b-49e0-ad15-4efeb3c7d3e9", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"NJD5vhpZVLONUxJH7J8LCc8ocYE-QvA2S9fn8_GIHzI\",\"original\":\"Finance@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"9a6a616e-5637-4306-b1fe-bceeaa750873", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"_UsB0Yw8M953FpyOz6V9ikDhugZE6P3W72AwwCmmYe8\",\"original\":\"engineering@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"9d036600-daf4-477a-bdd3-00e9db13214f", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"gvSJYK0_9PRWOGOU_fsUpYdAD3bkXgmlbCC4qCvCuKc\",\"original\":\"Tailspin@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"a258a179-27d0-4af1-bb17-9a9d9669f7ef", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"ByQMHJn8zT1GwrOKVSGaB65PsiJ_RITKojFQqWW4Txg\",\"original\":\"humanresources@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"a8873b19-1b42-4931-b923-234d7a00c5d8", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"zmtJa56snCOJ6M0NF733dMVxuEYwVOaFLh0IML5v29Q\",\"original\":\"ElectronicEvents@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"ae908c30-a360-4264-9bb8-ca0c5a19d05c", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"YenpHz-eYxXaE3_aID_GYuW4_MIdVJuXk95UKaecVus\",\"original\":\"Legal@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"bb765cc0-235c-425b-aed2-64826dab6fd8", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"l6bvVCt76-n-c9CcTM_BrhlJ5FNFCq27iOh7uJasTEQ\",\"original\":\"onlinemarketing@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"be29b3cb-f58e-4c83-9f58-ed082c317c2d", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"Yp10h4kTBLoIrIww-fpR3S0TrgAGe_cSQl87cYX3dnM\",\"original\":\"AdvancedPresentationSkills@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"c333f4a9-7acf-452c-81b2-2748fa5baece", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"Ew3YB7elGhy1h5itlhZtdiiR_dzUP-BpKWrJmrEgwg8\",\"original\":\"employeetraining@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"cc92cd0d-3d9e-4bc5-9453-109610353952", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"EUzNTm93pmXFe5g3O_DJoU80GFqSoZZNwNGMph11kUU\",\"original\":\"IT@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"d00ad3ee-9f6b-48df-a0a8-1342083ebed4", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"eTD1vvoS_jNgUX3SL86T5CBuUDYVtkCbuW6eWDnPz6E\",\"original\":\"Employees@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"d174fcb7-6569-4f8a-84c2-907d34826d4e", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"-cKNhoCSuIyPPfxgNPARK35LS95Vicwjq8BVTBQvjKo\",\"original\":\"researchanddevelopment@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"d17a5f86-57f4-48f8-87a0-79761dc8e706", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"sL9rFGnAoHdE4U-WvYgHFhqqw9kaOEzxmujKHbdgOPo\",\"original\":\"FashionEvents@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"d514c104-6351-4d20-a029-f4fa8a6badde", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"TSZbxhb9eOwhMkDoBk1fFe8n6wj8TZWJWQTeGUXubq0\",\"original\":\"Sales2@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"d8e62a27-848b-437d-8cf1-a21f0e410ed7", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"Lr5YoXX6cVWAqkA7RyS0woGuXvWlcVpUrlkpFehvHUs\",\"original\":\"Executives@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"e0a409e4-64c9-42d3-a291-326eca93a9fe", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"JBfOTdBvyAo6y4RqlHrzEKNPBM3Zx_-cIROvzpLgl2c\",\"original\":\"projectmanagement@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"e4ae9ed6-a509-48ae-b0a8-ae590bd6153b", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"D1_d8vjGxMepoG2Vzemr4PPUCY0NXUv6g_WxaUY4fgM\",\"original\":\"HR@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"e88d3b5c-a594-4ee8-a593-82dc016a6f75", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"LA9QtCkMoRX17B44yriNHNv59iYFB8C9cipyi60CA3o\",\"original\":\"Retail@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"e8a654a1-f61f-408a-8241-a8ca0ce050c7", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"_ASvM6RQS4lEWnJIPUV-Au07eUUxcNSd0RWk0jCyL5E\",\"original\":\"Finance2@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"ef18b112-d6dc-4b56-8cee-85f82dbe8a7d", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"uVhIfZue0Bvg4RBHk-4Sq437hZ1Ps-zEtAeOcRJJl54\",\"original\":\"PresentationSkills101@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"f2861ed7-abca-4556-bf0c-39ddc717ad81", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"q4X5Sk_wB-vCYio4A7XvgmCiav2Q6YQavIWqOfn_cJU\",\"original\":\"marketingteam@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"f795caea-121d-49c7-8ae6-a95623add8aa", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"EgQ1pi63A3S5sJtETnZobqRx5PnAs4vfMYPshIyDfi0\",\"original\":\"seniorleadershipteam@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"f9cd2c32-9c65-4e6e-8881-03b90b871a67", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"NlUJkLhHVhpaCNknPvvtLn7NqWe5Aso8sosXPSDmpTI\",\"original\":\"ProjectFalcon@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"fba674a5-8b3d-4017-be19-21074b7a3e37", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"lvuuUCcGTgQGwXyXnAhyxfCA5-VodFxqwXVyHqvAwbo\",\"original\":\"financeandaccounting@M365x214355.onmicrosoft.com\"}" + }, + { + "id":"fec200ce-a7a9-42cd-9717-3a3179a99b72", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"qlrR2jNH3hdQbp1irXW3IlMAL5OITecuJxITtrOum3w\",\"original\":\"Sales@M365x214355.onmicrosoft.com\"}" } ] } diff --git a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/user.json b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/user.json index f955532a13..4d8e307198 100644 --- a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/user.json +++ b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/user.json @@ -1,10 +1,5 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users/$entity", - "businessPhones":[ ], "mail":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", - "officeLocation":"12/1110", - "preferredLanguage":"en-US", - "userPrincipalName":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", "id":"48d31887-5fad-4d73-a9f5-3c356e68a038", "otherMails":[ "t~9hOtJuGJwqk4-lnsJ2csmTnmD9R_Y28iXox85gjemWU@gmail.com" @@ -13,4 +8,4 @@ "SMTP:t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", "smtp:t~xEWytalm5eilwjtWlbLarIaLtc_2Uw2qisSK3j33RaQ@M365x214355.onmicrosoft.com" ] -} \ No newline at end of file +} diff --git a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/users.json b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/users.json index 19f0231059..bd5aed8bd1 100644 --- a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/users.json +++ b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized/users.json @@ -1,13 +1,8 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users", "value":[ { "id":"cdfb873d-61f9-4656-bbbb-9e49fba4de97", - "businessPhones":[ ], "mail":"t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", - "officeLocation":null, - "preferredLanguage":"en-US", - "userPrincipalName":"t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", "otherMails":[ "t~DE__fI7lKDU-e4_ZTA7yZpj7Vu5cQ7jQbQE9h8aU5zg@gmail.com" ], @@ -18,42 +13,22 @@ }, { "id":"307ee26b-fe96-40a9-bc8a-9e49fba4de97", - "businessPhones":[ ], - "mail":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com", - "officeLocation":null, - "preferredLanguage":null, - "userPrincipalName":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com" + "mail":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com" }, { "id":"4ea7fc01-0264-4e84-b85e-9e49fba4de97", - "businessPhones":[ ], - "mail":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com", - "officeLocation":null, - "preferredLanguage":"en-US", - "userPrincipalName":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com" + "mail":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com" }, { "id":"219435cc-746e-48d6-8ccd-242345234f6e", - "businessPhones":[ ], - "mail":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com", - "officeLocation":null, - "preferredLanguage":"es-ES", - "userPrincipalName":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com" + "mail":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com" }, { "id":"f8f2864c-c353-4471-bd75-9e49fba4de97", - "businessPhones":[ ], - "mail":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com", - "officeLocation":null, - "preferredLanguage":"en-US", - "userPrincipalName":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com" + "mail":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com" }, { - "businessPhones":[ ], "mail":null, - "officeLocation":null, - "preferredLanguage":null, - "userPrincipalName":"t~hLkozOrxrM9tHy-V5lXCNwhujad46BtuFl2uP-J7Dwk@worklytics.onmicrosoft.com", "id":"232442306-9942-4750-a708-4a1e4fe8a879" } ] diff --git a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized_no-app-ids/group-members.json b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized_no-app-ids/group-members.json index fdcccbaf99..35dba6d2b5 100644 --- a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized_no-app-ids/group-members.json +++ b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized_no-app-ids/group-members.json @@ -1,176 +1,61 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#directoryObjects", "value":[ { - "@odata.type":"#microsoft.graph.user", - "id":"t~GIahqS6f7LWgiuhAm2FdsUTe3olu5_uafg6X_8R1Xds", - "businessPhones":[ ], - "mail":"t~1ZU-v2EwymdtJwCKzuncgUnOxX8V-MbE-FgKEvcj6J8@M365x214355.onmicrosoft.com", - "officeLocation":"18/2111", - "preferredLanguage":"en-US", - "userPrincipalName":"t~1ZU-v2EwymdtJwCKzuncgUnOxX8V-MbE-FgKEvcj6J8@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~cplqU6hWOUbCg3UfhVk2QABkcsecsN8KCVi4qnM4OlI", - "businessPhones":[ ], - "mail":"t~KDHHtwETokpIrd-0CMxrNe2pku8bSufS9D5ZG5gdKrg@M365x214355.onmicrosoft.com", - "officeLocation":"23/2102", - "preferredLanguage":"en-US", - "userPrincipalName":"t~KDHHtwETokpIrd-0CMxrNe2pku8bSufS9D5ZG5gdKrg@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~IFewU17rYP9y7Dkh0bDVL8cMyWVpt-CTayNlHHKajcY", - "businessPhones":[ ], - "mail":"t~yXsuWvjfGM2Okdqi_8ytlEfiN7dNqY_IfJEyzEE9jWo@M365x214355.onmicrosoft.com", - "officeLocation":"15/1102", - "preferredLanguage":"en-US", - "userPrincipalName":"t~yXsuWvjfGM2Okdqi_8ytlEfiN7dNqY_IfJEyzEE9jWo@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~QC-C6MuaU0214ZD6FERUEhBU0x0cg8f0cUfxo74Z7iY", - "businessPhones":[ ], - "mail":"t~ozJYl2KkP4ztQiof64QWgNtS5hx1czNS6pawH3v0AZw@M365x214355.onmicrosoft.com", - "officeLocation":"23/3101", - "preferredLanguage":"en-US", - "userPrincipalName":"t~ozJYl2KkP4ztQiof64QWgNtS5hx1czNS6pawH3v0AZw@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~hnJxHR_Zu53MxFq1gk9Ct2wFmBQyI6Axcc9h1GjGXO0", - "businessPhones":[ ], - "mail":"t~MVn_bPW8RmDL-2W6UHPPtKjrI0KVxRk08ZNvfUOnSjg@M365x214355.onmicrosoft.com", - "officeLocation":"14/1102", - "preferredLanguage":"en-US", - "userPrincipalName":"t~MVn_bPW8RmDL-2W6UHPPtKjrI0KVxRk08ZNvfUOnSjg@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~3Nli-HcRM7g89KfEIAXOL-nxrnyZDsHg_sPwDza2om8", - "businessPhones":[ ], - "mail":"t~DUyi5q8wChUJyCkMpodc7ASWD4pD-dW9GgQd6xLZQL4@M365x214355.onmicrosoft.com", - "officeLocation":"36/2121", - "preferredLanguage":"en-US", - "userPrincipalName":"t~DUyi5q8wChUJyCkMpodc7ASWD4pD-dW9GgQd6xLZQL4@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~_AEvyAEMlTxwyr6_9iAVIru2HY9kTaYx3NBKpPNKS4I", - "businessPhones":[ ], - "mail":"t~uTOzTJCFx4Qkj3_IAlznPQcud3ixYia6avTR52T-Cy4@M365x214355.onmicrosoft.com", - "officeLocation":"97/2302", - "preferredLanguage":"en-US", - "userPrincipalName":"t~uTOzTJCFx4Qkj3_IAlznPQcud3ixYia6avTR52T-Cy4@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~AIcnSwThMfVJG54wk-odWt5Tas8gt2A6kIxcfFKPzW4", - "businessPhones":[ ], - "mail":"t~xrI7EzSIq--CC6P9nUMgEfPMi4Op5rBR66-6nr1QwUI@M365x214355.onmicrosoft.com", - "officeLocation":"131/2105", - "preferredLanguage":"en-US", - "userPrincipalName":"t~xrI7EzSIq--CC6P9nUMgEfPMi4Op5rBR66-6nr1QwUI@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~mtT2SNV67gswDrIF2dK_W9WhOVuQ9lloClrZceeRwlU", - "businessPhones":[ ], - "mail":"t~yUp1exGSyddJ3c1HtMLtAg4YSVUlV3s5VSyz8iWgCiY@M365x214355.onmicrosoft.com", - "officeLocation":"20/1109", - "preferredLanguage":"en-US", - "userPrincipalName":"t~yUp1exGSyddJ3c1HtMLtAg4YSVUlV3s5VSyz8iWgCiY@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~ZpIwxk2Kn6FA9HPiOwwGSaN1N4WSHdKljkFwaWNLzbI", - "businessPhones":[ ], - "mail":"t~Obq2eJM8H6PaBmbsLgcx0lmrKetFS9OTpk2LuaA-goI@M365x214355.onmicrosoft.com", - "officeLocation":"131/1104", - "preferredLanguage":"en-US", - "userPrincipalName":"t~Obq2eJM8H6PaBmbsLgcx0lmrKetFS9OTpk2LuaA-goI@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~jQjKvY0jYpVpJCN9PnvDguGh5nRPZsqbneXXr74SGKs", - "businessPhones":[ ], - "mail":"t~mMw0NyWtsdA7ZqfNWAc63W4_UOAAS9wxZZAEzIsOkAw@M365x214355.onmicrosoft.com", - "officeLocation":"131/2103", - "preferredLanguage":"en-US", - "userPrincipalName":"t~mMw0NyWtsdA7ZqfNWAc63W4_UOAAS9wxZZAEzIsOkAw@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~N46OA7d0UIy2Kgd1z81gfKancHTCCAlDmAo5TsUU4ZM", - "businessPhones":[ ], - "mail":"t~VzIqpdtScbANlMr2k0A3A2IqLLBFnoDu7gtw90wPEJc@M365x214355.onmicrosoft.com", - "officeLocation":"14/1108", - "preferredLanguage":"en-US", - "userPrincipalName":"t~VzIqpdtScbANlMr2k0A3A2IqLLBFnoDu7gtw90wPEJc@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~hRMaT4czSy_QaP1uk20pPT-mWZw2nDCPe00BSPTvC_M", - "businessPhones":[ ], - "mail":"t~HRu855Q5bqB3kj1bf9LTO_ykCwHLiAklcYWUdvvIZU8@M365x214355.onmicrosoft.com", - "officeLocation":"20/2107", - "preferredLanguage":"en-US", - "userPrincipalName":"t~HRu855Q5bqB3kj1bf9LTO_ykCwHLiAklcYWUdvvIZU8@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~X9cdaHS5FbIXQstPZLKaKh6xp0WiHoIhfNsvb4r8cms", - "businessPhones":[ ], - "mail":"t~PS5V_GyzVyXk6jjkY-cKVd9UubD2yEntUABT3W6PyT0@M365x214355.onmicrosoft.com", - "officeLocation":"19/2109", - "preferredLanguage":"en-US", - "userPrincipalName":"t~PS5V_GyzVyXk6jjkY-cKVd9UubD2yEntUABT3W6PyT0@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~j1EdfIpu_era1uG9onG6DJxA_2ZMoQHkNWtA9Gr-aks", - "businessPhones":[ ], - "mail":"t~sQ8f9DihI2g9i17LxQ_GdZsNkUYpKp5A82AXup1YDwQ@M365x214355.onmicrosoft.com", - "officeLocation":"98/2202", - "preferredLanguage":"en-US", - "userPrincipalName":"t~sQ8f9DihI2g9i17LxQ_GdZsNkUYpKp5A82AXup1YDwQ@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~SIoJOpeSgYF7YUPQ28IWZexVuHyN9A80SJXrbfawKpA", - "businessPhones":[ ], - "mail":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", - "officeLocation":"12/1110", - "preferredLanguage":"en-US", - "userPrincipalName":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~8SUlSe462WgVOD2z7GSX7Sc7P_2sNVyHGDyjDRvtQUo", - "businessPhones":[ ], - "mail":"t~35oOumhzn8j-tFjW0z9p4J4Qn1R7MNx-ueJ0l_nbl2Q@M365x214355.onmicrosoft.com", - "officeLocation":"20/1104", - "preferredLanguage":"en-US", - "userPrincipalName":"t~35oOumhzn8j-tFjW0z9p4J4Qn1R7MNx-ueJ0l_nbl2Q@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~XWT0ikgm6JrPXRckTOl6XJNvAgKXNqF02HBMGIjEkAA", - "businessPhones":[ ], - "mail":"t~xzuczado8k_3rlH_zDVGqdQF2xvtCsyfe50ss4MR280@M365x214355.onmicrosoft.com", - "officeLocation":"18/1106", - "preferredLanguage":"en-US", - "userPrincipalName":"t~xzuczado8k_3rlH_zDVGqdQF2xvtCsyfe50ss4MR280@M365x214355.onmicrosoft.com" - }, - { - "@odata.type":"#microsoft.graph.user", - "id":"t~4nCzUj3pqoVcGUgm-r1HzWo0PO51s2SSdrBrJlwSJck", - "businessPhones":[ ], - "mail":"t~wOJLeblkCPz-4kzW9KSFa2VafQ4IBEankxalIWAN6J8@M365x214355.onmicrosoft.com", - "officeLocation":"20/1101", - "preferredLanguage":"en-US", - "userPrincipalName":"t~wOJLeblkCPz-4kzW9KSFa2VafQ4IBEankxalIWAN6J8@M365x214355.onmicrosoft.com" + "id":"t~GIahqS6f7LWgiuhAm2FdsUTe3olu5_uafg6X_8R1Xds" + }, + { + "id":"t~cplqU6hWOUbCg3UfhVk2QABkcsecsN8KCVi4qnM4OlI" + }, + { + "id":"t~IFewU17rYP9y7Dkh0bDVL8cMyWVpt-CTayNlHHKajcY" + }, + { + "id":"t~QC-C6MuaU0214ZD6FERUEhBU0x0cg8f0cUfxo74Z7iY" + }, + { + "id":"t~hnJxHR_Zu53MxFq1gk9Ct2wFmBQyI6Axcc9h1GjGXO0" + }, + { + "id":"t~3Nli-HcRM7g89KfEIAXOL-nxrnyZDsHg_sPwDza2om8" + }, + { + "id":"t~_AEvyAEMlTxwyr6_9iAVIru2HY9kTaYx3NBKpPNKS4I" + }, + { + "id":"t~AIcnSwThMfVJG54wk-odWt5Tas8gt2A6kIxcfFKPzW4" + }, + { + "id":"t~mtT2SNV67gswDrIF2dK_W9WhOVuQ9lloClrZceeRwlU" + }, + { + "id":"t~ZpIwxk2Kn6FA9HPiOwwGSaN1N4WSHdKljkFwaWNLzbI" + }, + { + "id":"t~jQjKvY0jYpVpJCN9PnvDguGh5nRPZsqbneXXr74SGKs" + }, + { + "id":"t~N46OA7d0UIy2Kgd1z81gfKancHTCCAlDmAo5TsUU4ZM" + }, + { + "id":"t~hRMaT4czSy_QaP1uk20pPT-mWZw2nDCPe00BSPTvC_M" + }, + { + "id":"t~X9cdaHS5FbIXQstPZLKaKh6xp0WiHoIhfNsvb4r8cms" + }, + { + "id":"t~j1EdfIpu_era1uG9onG6DJxA_2ZMoQHkNWtA9Gr-aks" + }, + { + "id":"t~SIoJOpeSgYF7YUPQ28IWZexVuHyN9A80SJXrbfawKpA" + }, + { + "id":"t~8SUlSe462WgVOD2z7GSX7Sc7P_2sNVyHGDyjDRvtQUo" + }, + { + "id":"t~XWT0ikgm6JrPXRckTOl6XJNvAgKXNqF02HBMGIjEkAA" + }, + { + "id":"t~4nCzUj3pqoVcGUgm-r1HzWo0PO51s2SSdrBrJlwSJck" } ] -} \ No newline at end of file +} diff --git a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized_no-app-ids/group.json b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized_no-app-ids/group.json new file mode 100644 index 0000000000..ed69c28467 --- /dev/null +++ b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized_no-app-ids/group.json @@ -0,0 +1,4 @@ +{ + "id":"02bd9fd6-8f93-4758-87c3-1fb73740a315", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"fTO4QfBNOhWw3GVNW6CBnOEGcXqa--EgnerUt-o_xu0\",\"original\":\"HRTaskforce@M365x214355.onmicrosoft.com\"}" +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized_no-app-ids/user.json b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized_no-app-ids/user.json index 48659dd9dc..4eeb47e6b1 100644 --- a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized_no-app-ids/user.json +++ b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized_no-app-ids/user.json @@ -1,10 +1,5 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users/$entity", - "businessPhones":[ ], "mail":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", - "officeLocation":"12/1110", - "preferredLanguage":"en-US", - "userPrincipalName":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", "id":"p~SIoJOpeSgYF7YUPQ28IWZexVuHyN9A80SJXrbfawKpDRcddGnKI4QDKyjQI9KtjJZDb8FZ27UE_toS68FyWz7Y22fnQYLP91SHJGVwQiN3E", "otherMails":[ "t~9hOtJuGJwqk4-lnsJ2csmTnmD9R_Y28iXox85gjemWU@gmail.com" @@ -13,4 +8,4 @@ "SMTP:t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", "smtp:t~xEWytalm5eilwjtWlbLarIaLtc_2Uw2qisSK3j33RaQ@M365x214355.onmicrosoft.com" ] -} \ No newline at end of file +} diff --git a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized_no-app-ids/users.json b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized_no-app-ids/users.json index f9155f27c1..a60c003f8c 100644 --- a/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized_no-app-ids/users.json +++ b/docs/sources/microsoft-365/entra-id/example-api-responses/sanitized_no-app-ids/users.json @@ -1,13 +1,8 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users", "value":[ { "id":"p~bFDzUA6DcTb6Jc4bDJ4UDkZwq_lK0Ob5TJA0h6E_6UmQ_EQgmQCK_TdrApUV5q-PZaA9i28Oitm-X6bYa8iwQSNV1qzposKfzSfm7JN860o", - "businessPhones":[ ], "mail":"t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", - "officeLocation":null, - "preferredLanguage":"en-US", - "userPrincipalName":"t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", "otherMails":[ "t~DE__fI7lKDU-e4_ZTA7yZpj7Vu5cQ7jQbQE9h8aU5zg@gmail.com" ], @@ -18,42 +13,22 @@ }, { "id":"p~olwC_FZa24BttFSG87T2U-fJybmzdHj6SMc7LxV4zOm0oLvgEDHxSVdAUvflsZfNPyGZt4MDy8hyxOZP9VHyJpfDnlVva0m1ElQ-WrRUjxM", - "businessPhones":[ ], - "mail":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com", - "officeLocation":null, - "preferredLanguage":null, - "userPrincipalName":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com" + "mail":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com" }, { "id":"p~CBRYQdohf24wt2ERzO_2CUZ1D7HWgla01CtX9RnFgko9_YX4INCm3pJZDkOYr_wJHHXNWuFYA5yKMQ0GOunQ_yECslrs_0kt_P_0uAUlKes", - "businessPhones":[ ], - "mail":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com", - "officeLocation":null, - "preferredLanguage":"en-US", - "userPrincipalName":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com" + "mail":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com" }, { "id":"p~11O1eqpq2vEzigY-HlCb5svil7cXxmuDhaMTaj86mLDZA43zB4KsiYB6d56uPZYidcBB96tOU2AfhbhLQbbhqAvLsaPaOgMj64f71eMQHc0", - "businessPhones":[ ], - "mail":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com", - "officeLocation":null, - "preferredLanguage":"es-ES", - "userPrincipalName":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com" + "mail":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com" }, { "id":"p~kOTAg44Qv8HSvYWG7niJEq_fPTSFm1vHKYfVhmrS221C1HOmCt8kkL376bc8842blh7-oAvtkYr2dK5dFhDDaMs_TWiVje9MvvyyZE6JI7E", - "businessPhones":[ ], - "mail":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com", - "officeLocation":null, - "preferredLanguage":"en-US", - "userPrincipalName":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com" + "mail":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com" }, { - "businessPhones":[ ], "mail":null, - "officeLocation":null, - "preferredLanguage":null, - "userPrincipalName":"t~hLkozOrxrM9tHy-V5lXCNwhujad46BtuFl2uP-J7Dwk@worklytics.onmicrosoft.com", "id":"p~xU2vGhAEBHegciOlP1Oz2bRY1_OkAY-GO2VY7FGQU5tc-5pDPeQYr4dh1Xrkbl1dmx1pyWCN8R3C-tWSXv_7DNDELLFYYHtX6FiIDjdLDaw" } ] diff --git a/docs/sources/microsoft-365/msft-copilot/README.md b/docs/sources/microsoft-365/msft-copilot/README.md index d568c65d1a..b447819989 100644 --- a/docs/sources/microsoft-365/msft-copilot/README.md +++ b/docs/sources/microsoft-365/msft-copilot/README.md @@ -48,4 +48,4 @@ a tokenized user id. ## Example Rules - [Example Rules](msft-copilot.yaml) -- [Example Rules: no User IDs](msft-copilot_no-userIds.yaml) \ No newline at end of file +- [Example Rules: no App IDs](msft-copilot_no-app-ids.yaml) \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-copilot/example-api-responses/original/user.json b/docs/sources/microsoft-365/msft-copilot/example-api-responses/original/user.json new file mode 100644 index 0000000000..411a52ac11 --- /dev/null +++ b/docs/sources/microsoft-365/msft-copilot/example-api-responses/original/user.json @@ -0,0 +1,23 @@ +{ + "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity", + "businessPhones": [ + "+1 412 555 0109" + ], + "displayName": "Megan Bowen", + "givenName": "Megan", + "jobTitle": "Auditor", + "mail": "MeganB@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "12/1110", + "preferredLanguage": "en-US", + "surname": "Bowen", + "userPrincipalName": "MeganB@M365x214355.onmicrosoft.com", + "id": "48d31887-5fad-4d73-a9f5-3c356e68a038", + "otherMails": [ + "megan@gmail.com" + ], + "proxyAddresses": [ + "SMTP:MeganB@M365x214355.onmicrosoft.com", + "smtp:megan@M365x214355.onmicrosoft.com" + ] +} diff --git a/docs/sources/microsoft-365/msft-copilot/example-api-responses/original/users.json b/docs/sources/microsoft-365/msft-copilot/example-api-responses/original/users.json new file mode 100644 index 0000000000..2ee428f33c --- /dev/null +++ b/docs/sources/microsoft-365/msft-copilot/example-api-responses/original/users.json @@ -0,0 +1,88 @@ +{ + "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users", + "value": [ + { + "id": "cdfb873d-61f9-4656-bbbb-9e49fba4de97", + "businessPhones": [ + "555555555" + ], + "displayName": "Alice Warren", + "givenName": "Alice", + "jobTitle": null, + "mail": "Alice@worklytics.onmicrosoft.com", + "mobilePhone": "+1 5555555555", + "officeLocation": null, + "preferredLanguage": "en-US", + "surname": "Warren", + "userPrincipalName": "Alice@worklytics.onmicrosoft.com", + "otherMails": [ + "Alice@gmail.com" + ], + "proxyAddresses": [ + "SMTP:Alice@worklytics.onmicrosoft.com", + "smtp:Alice.Warren@worklytics.onmicrosoft.com" + ] + }, + { + "id": "307ee26b-fe96-40a9-bc8a-9e49fba4de97", + "businessPhones": [], + "displayName": "EU Example", + "givenName": "EU", + "jobTitle": null, + "mail": "eu.example@worklytics.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": null, + "preferredLanguage": null, + "surname": "Example", + "userPrincipalName": "eu.example@worklytics.onmicrosoft.com" + }, + { + "id": "4ea7fc01-0264-4e84-b85e-9e49fba4de97", + "businessPhones": [], + "displayName": "john Laurens", + "givenName": "john", + "jobTitle": null, + "mail": "john@worklytics.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": null, + "preferredLanguage": "en-US", + "surname": "Laurens", + "userPrincipalName": "john@worklytics.onmicrosoft.com" + }, + { + "id": "219435cc-746e-48d6-8ccd-242345234f6e", + "businessPhones": [], + "displayName": "Lois Alberto", + "givenName": "Luis", + "jobTitle": null, + "mail": "luis@worklytics.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": null, + "preferredLanguage": "es-ES", + "surname": "Alberto", + "userPrincipalName": "luis@worklytics.onmicrosoft.com" + }, + { + "id": "f8f2864c-c353-4471-bd75-9e49fba4de97", + "businessPhones": [], + "displayName": "Paul Allen", + "givenName": "Paul", + "jobTitle": null, + "mail": "Paul@worklytics.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": null, + "preferredLanguage": "en-US", + "surname": "Allen", + "userPrincipalName": "Paul@worklytics.onmicrosoft.com" + }, + { + "businessPhones": [], + "jobTitle": null, + "mail": null, + "officeLocation": null, + "preferredLanguage": null, + "userPrincipalName": "no-mail-example@worklytics.onmicrosoft.com", + "id": "232442306-9942-4750-a708-4a1e4fe8a879" + } + ] +} diff --git a/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized/response_beta.json b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized/response_beta.json index 15b4d04477..e43aca68b2 100644 --- a/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized/response_beta.json +++ b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized/response_beta.json @@ -31,7 +31,7 @@ { "attachmentId":"4062fb240a03490b98ccd7c86bb2bcbf", "contentType":"application/vnd.microsoft.card.adaptive", - "+content:textDigest":"{\"type\":\"AdaptiveCard\",\"version\":\"1.0\",\"body\":[{\"type\":\"TextBlock\",\"text\":\"{\\\"length\\\":2572,\\\"word_count\\\":154}\",\"wrap\":true},{\"type\":\"TextBlock\",\"id\":\"MessageTextField\",\"text\":\"{\\\"length\\\":980,\\\"word_count\\\":154}\",\"wrap\":true}]}" + "+content:textDigest":"{\"type\":\"AdaptiveCard\",\"version\":\"1.0\",\"body\":[{\"type\":\"TextBlock\",\"text\":\"{\\\"keywords\\\":{\\\"api\\\":1},\\\"length\\\":2572,\\\"word_count\\\":154}\",\"wrap\":true},{\"type\":\"TextBlock\",\"id\":\"MessageTextField\",\"text\":\"{\\\"keywords\\\":{\\\"api\\\":1},\\\"length\\\":980,\\\"word_count\\\":154}\",\"wrap\":true}]}" } ], "links":[ @@ -97,4 +97,4 @@ "mentions":[ ] } ] -} +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized/response_with_team_meeting_beta.json b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized/response_with_team_meeting_beta.json index 883388de08..abc0412761 100644 --- a/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized/response_with_team_meeting_beta.json +++ b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized/response_with_team_meeting_beta.json @@ -41,4 +41,4 @@ "mentions":[ ] } ] -} +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized/user.json b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized/user.json new file mode 100644 index 0000000000..031b4af1d0 --- /dev/null +++ b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized/user.json @@ -0,0 +1,11 @@ +{ + "mail":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "id":"48d31887-5fad-4d73-a9f5-3c356e68a038", + "otherMails":[ + "t~9hOtJuGJwqk4-lnsJ2csmTnmD9R_Y28iXox85gjemWU@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "smtp:t~xEWytalm5eilwjtWlbLarIaLtc_2Uw2qisSK3j33RaQ@M365x214355.onmicrosoft.com" + ] +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized/users.json b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized/users.json new file mode 100644 index 0000000000..bd5aed8bd1 --- /dev/null +++ b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized/users.json @@ -0,0 +1,35 @@ +{ + "value":[ + { + "id":"cdfb873d-61f9-4656-bbbb-9e49fba4de97", + "mail":"t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "otherMails":[ + "t~DE__fI7lKDU-e4_ZTA7yZpj7Vu5cQ7jQbQE9h8aU5zg@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "smtp:t~EkwwRg8vVk-IkHkgeBVG2gILwkBgVGjJTAYcD5RDpho@worklytics.onmicrosoft.com" + ] + }, + { + "id":"307ee26b-fe96-40a9-bc8a-9e49fba4de97", + "mail":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com" + }, + { + "id":"4ea7fc01-0264-4e84-b85e-9e49fba4de97", + "mail":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com" + }, + { + "id":"219435cc-746e-48d6-8ccd-242345234f6e", + "mail":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com" + }, + { + "id":"f8f2864c-c353-4471-bd75-9e49fba4de97", + "mail":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com" + }, + { + "mail":null, + "id":"232442306-9942-4750-a708-4a1e4fe8a879" + } + ] +} diff --git a/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-userIds/response_beta.json b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-app-ids/response_beta.json similarity index 94% rename from docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-userIds/response_beta.json rename to docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-app-ids/response_beta.json index 3d199b754a..88b1867c7d 100644 --- a/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-userIds/response_beta.json +++ b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-app-ids/response_beta.json @@ -31,7 +31,7 @@ { "attachmentId":"p~b7-iqzej17OJkneCXlO1ouZozsG_aj0atv5hHVpKgxM0kzjFc7S6sHiTYXoRAC45pipdQSn_BCn3vJl8dMpaHjBr-dCj3A5A3i2D4QhjLWA", "contentType":"application/vnd.microsoft.card.adaptive", - "+content:textDigest":"{\"type\":\"AdaptiveCard\",\"version\":\"1.0\",\"body\":[{\"type\":\"TextBlock\",\"text\":\"{\\\"length\\\":2572,\\\"word_count\\\":154}\",\"wrap\":true},{\"type\":\"TextBlock\",\"id\":\"MessageTextField\",\"text\":\"{\\\"length\\\":980,\\\"word_count\\\":154}\",\"wrap\":true}]}" + "+content:textDigest":"{\"type\":\"AdaptiveCard\",\"version\":\"1.0\",\"body\":[{\"type\":\"TextBlock\",\"text\":\"{\\\"keywords\\\":{\\\"api\\\":1},\\\"length\\\":2572,\\\"word_count\\\":154}\",\"wrap\":true},{\"type\":\"TextBlock\",\"id\":\"MessageTextField\",\"text\":\"{\\\"keywords\\\":{\\\"api\\\":1},\\\"length\\\":980,\\\"word_count\\\":154}\",\"wrap\":true}]}" } ], "links":[ @@ -97,4 +97,4 @@ "mentions":[ ] } ] -} +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-userIds/response_with_team_meeting_beta.json b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-app-ids/response_with_team_meeting_beta.json similarity index 99% rename from docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-userIds/response_with_team_meeting_beta.json rename to docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-app-ids/response_with_team_meeting_beta.json index 4f6d445a6d..4e04c735e1 100644 --- a/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-userIds/response_with_team_meeting_beta.json +++ b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-app-ids/response_with_team_meeting_beta.json @@ -41,4 +41,4 @@ "mentions":[ ] } ] -} +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-app-ids/user.json b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-app-ids/user.json new file mode 100644 index 0000000000..fde9992ae6 --- /dev/null +++ b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-app-ids/user.json @@ -0,0 +1,11 @@ +{ + "mail":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "id":"p~SIoJOpeSgYF7YUPQ28IWZexVuHyN9A80SJXrbfawKpDRcddGnKI4QDKyjQI9KtjJZDb8FZ27UE_toS68FyWz7Y22fnQYLP91SHJGVwQiN3E", + "otherMails":[ + "t~9hOtJuGJwqk4-lnsJ2csmTnmD9R_Y28iXox85gjemWU@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "smtp:t~xEWytalm5eilwjtWlbLarIaLtc_2Uw2qisSK3j33RaQ@M365x214355.onmicrosoft.com" + ] +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-app-ids/users.json b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-app-ids/users.json new file mode 100644 index 0000000000..a60c003f8c --- /dev/null +++ b/docs/sources/microsoft-365/msft-copilot/example-api-responses/sanitized_no-app-ids/users.json @@ -0,0 +1,35 @@ +{ + "value":[ + { + "id":"p~bFDzUA6DcTb6Jc4bDJ4UDkZwq_lK0Ob5TJA0h6E_6UmQ_EQgmQCK_TdrApUV5q-PZaA9i28Oitm-X6bYa8iwQSNV1qzposKfzSfm7JN860o", + "mail":"t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "otherMails":[ + "t~DE__fI7lKDU-e4_ZTA7yZpj7Vu5cQ7jQbQE9h8aU5zg@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "smtp:t~EkwwRg8vVk-IkHkgeBVG2gILwkBgVGjJTAYcD5RDpho@worklytics.onmicrosoft.com" + ] + }, + { + "id":"p~olwC_FZa24BttFSG87T2U-fJybmzdHj6SMc7LxV4zOm0oLvgEDHxSVdAUvflsZfNPyGZt4MDy8hyxOZP9VHyJpfDnlVva0m1ElQ-WrRUjxM", + "mail":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com" + }, + { + "id":"p~CBRYQdohf24wt2ERzO_2CUZ1D7HWgla01CtX9RnFgko9_YX4INCm3pJZDkOYr_wJHHXNWuFYA5yKMQ0GOunQ_yECslrs_0kt_P_0uAUlKes", + "mail":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com" + }, + { + "id":"p~11O1eqpq2vEzigY-HlCb5svil7cXxmuDhaMTaj86mLDZA43zB4KsiYB6d56uPZYidcBB96tOU2AfhbhLQbbhqAvLsaPaOgMj64f71eMQHc0", + "mail":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com" + }, + { + "id":"p~kOTAg44Qv8HSvYWG7niJEq_fPTSFm1vHKYfVhmrS221C1HOmCt8kkL376bc8842blh7-oAvtkYr2dK5dFhDDaMs_TWiVje9MvvyyZE6JI7E", + "mail":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com" + }, + { + "mail":null, + "id":"p~xU2vGhAEBHegciOlP1Oz2bRY1_OkAY-GO2VY7FGQU5tc-5pDPeQYr4dh1Xrkbl1dmx1pyWCN8R3C-tWSXv_7DNDELLFYYHtX6FiIDjdLDaw" + } + ] +} diff --git a/docs/sources/microsoft-365/msft-copilot/msft-copilot.yaml b/docs/sources/microsoft-365/msft-copilot/msft-copilot.yaml index 1edf4b806b..4e3c26079e 100644 --- a/docs/sources/microsoft-365/msft-copilot/msft-copilot.yaml +++ b/docs/sources/microsoft-365/msft-copilot/msft-copilot.yaml @@ -1,86 +1,641 @@ --- endpoints: - - pathTemplate: "/beta/copilot/users/{id}/interactionHistory/getAllEnterpriseInteractions" - allowedQueryParams: - - "$filter" - augments: - - ! - jsonPaths: - - "$..attachments[*].content" - innerJsonPath: "$..text" - - ! - jsonPaths: - - "$..body.content" - transforms: - - ! - jsonPaths: - - "$..emailAddress" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..displayName" - - "$..contentUrl" - - "$..attachments[*].name" - - "$..attachments[*].contentUrl" - - "$..mentions[*].mentionText" - - "$..contexts[*].contextReference" - - "$..links[?(@.linkType == 'File')].linkUrl" - - ! - jsonPaths: - - "$..body.content" - - "$..attachments[*].content" - - ! - jsonPaths: - - "$..['@odata.context']" - - ! - jsonPaths: - - "$..['@odata.count']" - - ! - jsonPaths: - - "$..['@odata.type']" - - pathRegex: "^/v1.0/users/?[^/]*" - allowedQueryParams: - - "$top" - - "$select" - - "$skiptoken" - - "$orderBy" - - "$count" - - "$filter" - allowedRequestHeaders: - - "ConsistencyLevel" - transforms: - - ! - jsonPaths: - - "$..proxyAddresses[*]" - regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" - - ! - jsonPaths: - - "$..employeeId" - - "$..userPrincipalName" - - "$..imAddresses[*]" - - "$..mail" - - "$..otherMails[*]" - - "$..onPremisesSamAccountName" - - "$..onPremisesUserPrincipalName" - - "$..onPremisesDistinguishedName" - - "$..onPremisesImmutableId" - - "$..identities[*].issuerAssignedId" - encoding: "URL_SAFE_TOKEN" +- pathTemplate: "/beta/copilot/users/{id}/interactionHistory/getAllEnterpriseInteractions" + allowedQueryParams: + - "$filter" + - "$top" + - "$skiptoken" + augments: + - ! + jsonPaths: + - "$..attachments[*].content" + innerJsonPath: "$..text" + keywords: + - "generate image" + - "create image" + - "draw image" + - "make image" + - "design image" + - "picture of" + - "illustration of" + - "visual of" + - "render" + - "generate graphic" + - "create graphic" + - "dall-e" + - "dalle" + - "draw" + - "python" + - "javascript" + - "typescript" + - "java" + - "sql" + - "code" + - "function" + - "debug" + - "api" + - "html" + - "react" + - "bash" + - "css" + - "docker" + - "ruby" + - "golang" + - "kotlin" + - "php" + - "node" + - "angular" + - "vue" + - "swift" + - "npm" + - "github" + - "git" + - "implement" + - "bug" + - "deploy" + - "script" + - "class" + - "method" + - "array" + - "exception" + - "refactor" + - "compile" + - "callback" + - "const" + - "async" + - "await" + - "pull request" + - "code review" + - "unit test" + - "stack trace" + - "error" + - "what is" + - "what are" + - "how does" + - "explain" + - "difference between" + - "compared" + - "how do" + - "how to" + - "explain how" + - "explain why" + - "explain what" + - "why does" + - "why is" + - "best practices" + - "compared to" + - "brainstorm" + - "alternatives" + - "versus" + - "tradeoffs" + - "outline" + - "nda" + - "write" + - "draft" + - "compose" + - "email" + - "rewrite" + - "proofread" + - "blog" + - "article" + - "e-mail" + - "mail" + - "redline" + - "review" + - "summarise" + - "summary" + - "translate to" + - "report" + - "proposal" + - "presentation" + - "slides" + - "brief" + - "newsletter" + - "contract" + - "financials" + - "accounting" + - "payroll" + - "breakeven" + - "cashflow" + - "nps" + - "data analysis" + - "analyze" + - "pivot" + - "chart" + - "tableau" + - "summarize" + - "pivot table" + - "bar chart" + - "line chart" + - "pie chart" + - "vlookup" + - "snowflake" + - "memo" + - "deck" + - "craft" + - "design" + - "linkedin" + - ! + jsonPaths: + - "$..body.content" + keywords: + - "generate image" + - "create image" + - "draw image" + - "make image" + - "design image" + - "picture of" + - "illustration of" + - "visual of" + - "render" + - "generate graphic" + - "create graphic" + - "dall-e" + - "dalle" + - "draw" + - "python" + - "javascript" + - "typescript" + - "java" + - "sql" + - "code" + - "function" + - "debug" + - "api" + - "html" + - "react" + - "bash" + - "css" + - "docker" + - "ruby" + - "golang" + - "kotlin" + - "php" + - "node" + - "angular" + - "vue" + - "swift" + - "npm" + - "github" + - "git" + - "implement" + - "bug" + - "deploy" + - "script" + - "class" + - "method" + - "array" + - "exception" + - "refactor" + - "compile" + - "callback" + - "const" + - "async" + - "await" + - "pull request" + - "code review" + - "unit test" + - "stack trace" + - "error" + - "what is" + - "what are" + - "how does" + - "explain" + - "difference between" + - "compared" + - "how do" + - "how to" + - "explain how" + - "explain why" + - "explain what" + - "why does" + - "why is" + - "best practices" + - "compared to" + - "brainstorm" + - "alternatives" + - "versus" + - "tradeoffs" + - "outline" + - "nda" + - "write" + - "draft" + - "compose" + - "email" + - "rewrite" + - "proofread" + - "blog" + - "article" + - "e-mail" + - "mail" + - "redline" + - "review" + - "summarise" + - "summary" + - "translate to" + - "report" + - "proposal" + - "presentation" + - "slides" + - "brief" + - "newsletter" + - "contract" + - "financials" + - "accounting" + - "payroll" + - "breakeven" + - "cashflow" + - "nps" + - "data analysis" + - "analyze" + - "pivot" + - "chart" + - "tableau" + - "summarize" + - "pivot table" + - "bar chart" + - "line chart" + - "pie chart" + - "vlookup" + - "snowflake" + - "memo" + - "deck" + - "craft" + - "design" + - "linkedin" + transforms: + - ! + jsonPaths: + - "$..emailAddress" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..body.content" + - "$..attachments[*].content" + - ! + jsonPaths: + - "$..links[?(@.linkType=='File')].linkUrl" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/AIInteraction" +- pathRegex: "^/v1.0/users/?(\\?.*)?$" + allowedQueryParams: + - "$top" + - "$select" + - "$skiptoken" + - "$orderBy" + - "$count" + - "$filter" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphUser" +- pathRegex: "^/v1.0/users/[^/?]+(\\?.*)?$" + allowedQueryParams: + - "$select" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" +definitions: + AIInteraction: + type: "object" + properties: + airesponse: + type: "boolean" + appClass: + type: "string" + attachments: + type: "array" + items: + $ref: "#/definitions/AIInteractionAttachment" + body: + $ref: "#/definitions/ItemBody" + contexts: + type: "array" + items: + $ref: "#/definitions/AIInteractionContext" + conversationType: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + etag: + type: "string" + from: + $ref: "#/definitions/IdentitySet" + id: + type: "string" + interactionType: + type: "string" + links: + type: "array" + items: + $ref: "#/definitions/AIInteractionLink" + locale: + type: "string" + mentions: + type: "array" + items: + $ref: "#/definitions/AIInteractionMention" + requestId: + type: "string" + sessionId: + type: "string" + userPrompt: + type: "boolean" + AIInteractionAttachment: + type: "object" + properties: + attachmentId: + type: "string" + content: + type: "string" + contentType: + type: "string" + AIInteractionContext: + type: "object" + properties: + contextType: + type: "string" + AIInteractionLink: + type: "object" + properties: + linkType: + type: "string" + linkUrl: + type: "string" + AIInteractionMention: + type: "object" + properties: + mentionId: + type: "integer" + mentioned: + $ref: "#/definitions/AIInteractionMentionedIdentitySet" + AIInteractionMentionedIdentitySet: + type: "object" + properties: + conversation: + $ref: "#/definitions/TeamWorkConversationIdentity" + tag: + $ref: "#/definitions/Identity" + AutomaticRepliesSettings: + type: "object" + properties: + externalAudience: + type: "string" + scheduledEndDateTime: + $ref: "#/definitions/DateTimeTimeZone" + scheduledStartDateTime: + $ref: "#/definitions/DateTimeTimeZone" + status: + type: "string" + CustomTimeZone: + type: "object" + properties: + '@odata.type': + type: "string" + bias: + type: "integer" + daylightOffset: + $ref: "#/definitions/Offset" + name: + type: "string" + standardOffset: + $ref: "#/definitions/Offset" + DateTimeTimeZone: + type: "object" + properties: + dateTime: + type: "string" + format: "date-time" + timeZone: + type: "string" + timeZoneIANA: + type: "string" + GraphUser: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" + Identity: + type: "object" + properties: + applicationIdentityType: + type: "string" + email: + type: "string" + id: + type: "string" + tenantId: + type: "string" + userIdentityType: + type: "string" + IdentitySet: + type: "object" + properties: + application: + $ref: "#/definitions/Identity" + applicationInstance: + $ref: "#/definitions/Identity" + conversation: + $ref: "#/definitions/Identity" + conversationIdentityType: + $ref: "#/definitions/Identity" + device: + $ref: "#/definitions/Identity" + encrypted: + $ref: "#/definitions/Identity" + guest: + $ref: "#/definitions/Identity" + onPremises: + $ref: "#/definitions/Identity" + user: + $ref: "#/definitions/Identity" + ItemBody: + type: "object" + properties: + content: + type: "string" + contentType: + type: "string" + LocaleInfo: + type: "object" + properties: + displayName: + type: "string" + locale: + type: "string" + MailboxSettings: + type: "object" + properties: + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + Offset: + type: "object" + properties: + dayOccurrence: + type: "integer" + dayOfWeek: + type: "string" + daylightBias: + type: "integer" + month: + type: "integer" + time: + type: "string" + year: + type: "integer" + TeamWorkConversationIdentity: + type: "object" + properties: + applicationIdentityType: + type: "string" + conversationIdentityType: + type: "string" + email: + type: "string" + id: + type: "string" + tenantId: + type: "string" + userIdentityType: + type: "string" + WorkingHours: + type: "object" + properties: + daysOfWeek: + type: "array" + items: + type: "string" + endTime: + type: "string" + format: "time" + startTime: + type: "string" + format: "time" + timeZone: + anyOf: + - $ref: "#/definitions/CustomTimeZone" diff --git a/docs/sources/microsoft-365/msft-copilot/msft-copilot_no-app-ids.yaml b/docs/sources/microsoft-365/msft-copilot/msft-copilot_no-app-ids.yaml new file mode 100644 index 0000000000..c83ed56e44 --- /dev/null +++ b/docs/sources/microsoft-365/msft-copilot/msft-copilot_no-app-ids.yaml @@ -0,0 +1,662 @@ +--- +endpoints: +- pathRegex: "^/beta/copilot/users/(/p~[a-zA-Z0-9_-]+?)?[^/]*/interactionHistory/getAllEnterpriseInteractions(\\\ + ?.*)?" + augments: + - ! + jsonPaths: + - "$..attachments[*].content" + innerJsonPath: "$..text" + keywords: + - "generate image" + - "create image" + - "draw image" + - "make image" + - "design image" + - "picture of" + - "illustration of" + - "visual of" + - "render" + - "generate graphic" + - "create graphic" + - "dall-e" + - "dalle" + - "draw" + - "python" + - "javascript" + - "typescript" + - "java" + - "sql" + - "code" + - "function" + - "debug" + - "api" + - "html" + - "react" + - "bash" + - "css" + - "docker" + - "ruby" + - "golang" + - "kotlin" + - "php" + - "node" + - "angular" + - "vue" + - "swift" + - "npm" + - "github" + - "git" + - "implement" + - "bug" + - "deploy" + - "script" + - "class" + - "method" + - "array" + - "exception" + - "refactor" + - "compile" + - "callback" + - "const" + - "async" + - "await" + - "pull request" + - "code review" + - "unit test" + - "stack trace" + - "error" + - "what is" + - "what are" + - "how does" + - "explain" + - "difference between" + - "compared" + - "how do" + - "how to" + - "explain how" + - "explain why" + - "explain what" + - "why does" + - "why is" + - "best practices" + - "compared to" + - "brainstorm" + - "alternatives" + - "versus" + - "tradeoffs" + - "outline" + - "nda" + - "write" + - "draft" + - "compose" + - "email" + - "rewrite" + - "proofread" + - "blog" + - "article" + - "e-mail" + - "mail" + - "redline" + - "review" + - "summarise" + - "summary" + - "translate to" + - "report" + - "proposal" + - "presentation" + - "slides" + - "brief" + - "newsletter" + - "contract" + - "financials" + - "accounting" + - "payroll" + - "breakeven" + - "cashflow" + - "nps" + - "data analysis" + - "analyze" + - "pivot" + - "chart" + - "tableau" + - "summarize" + - "pivot table" + - "bar chart" + - "line chart" + - "pie chart" + - "vlookup" + - "snowflake" + - "memo" + - "deck" + - "craft" + - "design" + - "linkedin" + - ! + jsonPaths: + - "$..body.content" + keywords: + - "generate image" + - "create image" + - "draw image" + - "make image" + - "design image" + - "picture of" + - "illustration of" + - "visual of" + - "render" + - "generate graphic" + - "create graphic" + - "dall-e" + - "dalle" + - "draw" + - "python" + - "javascript" + - "typescript" + - "java" + - "sql" + - "code" + - "function" + - "debug" + - "api" + - "html" + - "react" + - "bash" + - "css" + - "docker" + - "ruby" + - "golang" + - "kotlin" + - "php" + - "node" + - "angular" + - "vue" + - "swift" + - "npm" + - "github" + - "git" + - "implement" + - "bug" + - "deploy" + - "script" + - "class" + - "method" + - "array" + - "exception" + - "refactor" + - "compile" + - "callback" + - "const" + - "async" + - "await" + - "pull request" + - "code review" + - "unit test" + - "stack trace" + - "error" + - "what is" + - "what are" + - "how does" + - "explain" + - "difference between" + - "compared" + - "how do" + - "how to" + - "explain how" + - "explain why" + - "explain what" + - "why does" + - "why is" + - "best practices" + - "compared to" + - "brainstorm" + - "alternatives" + - "versus" + - "tradeoffs" + - "outline" + - "nda" + - "write" + - "draft" + - "compose" + - "email" + - "rewrite" + - "proofread" + - "blog" + - "article" + - "e-mail" + - "mail" + - "redline" + - "review" + - "summarise" + - "summary" + - "translate to" + - "report" + - "proposal" + - "presentation" + - "slides" + - "brief" + - "newsletter" + - "contract" + - "financials" + - "accounting" + - "payroll" + - "breakeven" + - "cashflow" + - "nps" + - "data analysis" + - "analyze" + - "pivot" + - "chart" + - "tableau" + - "summarize" + - "pivot table" + - "bar chart" + - "line chart" + - "pie chart" + - "vlookup" + - "snowflake" + - "memo" + - "deck" + - "craft" + - "design" + - "linkedin" + transforms: + - ! + jsonPaths: + - "$..emailAddress" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..from.user.id" + - "$..mentions[*].tag.id" + - "$..mentions[*].conversation.id" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..sessionId" + - "$..attachments[*].attachmentId" + - ! + jsonPaths: + - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" + regex: "^https://graph.microsoft.com/beta/copilot/users/([a-zA-Z0-9_-]+)/.*$" + - ! + jsonPaths: + - "$..body.content" + - "$..attachments[*].content" + - ! + jsonPaths: + - "$..links[?(@.linkType=='File')].linkUrl" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/AIInteraction" +- pathRegex: "^/v1.0/users(\\?.*)?$" + allowedQueryParams: + - "$top" + - "$select" + - "$skiptoken" + - "$orderBy" + - "$count" + - "$filter" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..id" + includeReversible: true + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphUser" +- pathRegex: "^/v1.0/users/p~[a-zA-Z0-9_-]+(\\?.*)?$" + allowedQueryParams: + - "$select" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..id" + includeReversible: true + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" +definitions: + AIInteraction: + type: "object" + properties: + airesponse: + type: "boolean" + appClass: + type: "string" + attachments: + type: "array" + items: + $ref: "#/definitions/AIInteractionAttachment" + body: + $ref: "#/definitions/ItemBody" + contexts: + type: "array" + items: + $ref: "#/definitions/AIInteractionContext" + conversationType: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + etag: + type: "string" + from: + $ref: "#/definitions/IdentitySet" + id: + type: "string" + interactionType: + type: "string" + links: + type: "array" + items: + $ref: "#/definitions/AIInteractionLink" + locale: + type: "string" + mentions: + type: "array" + items: + $ref: "#/definitions/AIInteractionMention" + requestId: + type: "string" + sessionId: + type: "string" + userPrompt: + type: "boolean" + AIInteractionAttachment: + type: "object" + properties: + attachmentId: + type: "string" + content: + type: "string" + contentType: + type: "string" + AIInteractionContext: + type: "object" + properties: + contextType: + type: "string" + AIInteractionLink: + type: "object" + properties: + linkType: + type: "string" + linkUrl: + type: "string" + AIInteractionMention: + type: "object" + properties: + mentionId: + type: "integer" + mentioned: + $ref: "#/definitions/AIInteractionMentionedIdentitySet" + AIInteractionMentionedIdentitySet: + type: "object" + properties: + conversation: + $ref: "#/definitions/TeamWorkConversationIdentity" + tag: + $ref: "#/definitions/Identity" + AutomaticRepliesSettings: + type: "object" + properties: + externalAudience: + type: "string" + scheduledEndDateTime: + $ref: "#/definitions/DateTimeTimeZone" + scheduledStartDateTime: + $ref: "#/definitions/DateTimeTimeZone" + status: + type: "string" + CustomTimeZone: + type: "object" + properties: + '@odata.type': + type: "string" + bias: + type: "integer" + daylightOffset: + $ref: "#/definitions/Offset" + name: + type: "string" + standardOffset: + $ref: "#/definitions/Offset" + DateTimeTimeZone: + type: "object" + properties: + dateTime: + type: "string" + format: "date-time" + timeZone: + type: "string" + timeZoneIANA: + type: "string" + GraphUser: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" + Identity: + type: "object" + properties: + applicationIdentityType: + type: "string" + email: + type: "string" + id: + type: "string" + tenantId: + type: "string" + userIdentityType: + type: "string" + IdentitySet: + type: "object" + properties: + application: + $ref: "#/definitions/Identity" + applicationInstance: + $ref: "#/definitions/Identity" + conversation: + $ref: "#/definitions/Identity" + conversationIdentityType: + $ref: "#/definitions/Identity" + device: + $ref: "#/definitions/Identity" + encrypted: + $ref: "#/definitions/Identity" + guest: + $ref: "#/definitions/Identity" + onPremises: + $ref: "#/definitions/Identity" + user: + $ref: "#/definitions/Identity" + ItemBody: + type: "object" + properties: + content: + type: "string" + contentType: + type: "string" + LocaleInfo: + type: "object" + properties: + displayName: + type: "string" + locale: + type: "string" + MailboxSettings: + type: "object" + properties: + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + Offset: + type: "object" + properties: + dayOccurrence: + type: "integer" + dayOfWeek: + type: "string" + daylightBias: + type: "integer" + month: + type: "integer" + time: + type: "string" + year: + type: "integer" + TeamWorkConversationIdentity: + type: "object" + properties: + applicationIdentityType: + type: "string" + conversationIdentityType: + type: "string" + email: + type: "string" + id: + type: "string" + tenantId: + type: "string" + userIdentityType: + type: "string" + WorkingHours: + type: "object" + properties: + daysOfWeek: + type: "array" + items: + type: "string" + endTime: + type: "string" + format: "time" + startTime: + type: "string" + format: "time" + timeZone: + anyOf: + - $ref: "#/definitions/CustomTimeZone" diff --git a/docs/sources/microsoft-365/msft-copilot/msft-copilot_no-userIds.yaml b/docs/sources/microsoft-365/msft-copilot/msft-copilot_no-userIds.yaml deleted file mode 100644 index 2096bd8668..0000000000 --- a/docs/sources/microsoft-365/msft-copilot/msft-copilot_no-userIds.yaml +++ /dev/null @@ -1,97 +0,0 @@ ---- -endpoints: - - pathRegex: "^/beta/copilot/users/(/p~[a-zA-Z0-9_-]+?)?[^/]*/interactionHistory/getAllEnterpriseInteractions(\\\ - ?.*)?" - augments: - - ! - jsonPaths: - - "$..attachments[*].content" - innerJsonPath: "$..text" - - ! - jsonPaths: - - "$..body.content" - transforms: - - ! - jsonPaths: - - "$..emailAddress" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..sessionId" - - "$..attachments[*].attachmentId" - - ! - jsonPaths: - - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" - regex: "^https://graph.microsoft.com/beta/copilot/users/([a-zA-Z0-9_-]+)/.*$" - - ! - jsonPaths: - - "$..from..[?(@.applicationIdentityType != \"bot\")].id" - - "$..mentions[*][?(@.applicationIdentityType != \"bot\")].id" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..body.content" - - "$..attachments[*].content" - - ! - jsonPaths: - - "$..displayName" - - "$..contentUrl" - - "$..attachments[*].name" - - "$..attachments[*].contentUrl" - - "$..mentions[*].mentionText" - - "$..contexts[*].contextReference" - - "$..links[?(@.linkType == 'File')].linkUrl" - - "$..['@odata.context']" - - "$..['@odata.count']" - - "$..['@odata.type']" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*" - allowedQueryParams: - - "$top" - - "$select" - - "$skiptoken" - - "$orderBy" - - "$count" - - "$filter" - allowedRequestHeaders: - - "ConsistencyLevel" - transforms: - - ! - jsonPaths: - - "$..proxyAddresses[*]" - regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" - - ! - jsonPaths: - - "$..employeeId" - - "$..userPrincipalName" - - "$..imAddresses[*]" - - "$..mail" - - "$..otherMails[*]" - - "$..onPremisesSamAccountName" - - "$..onPremisesUserPrincipalName" - - "$..onPremisesDistinguishedName" - - "$..onPremisesImmutableId" - - "$..identities[*].issuerAssignedId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..id" - includeReversible: true - encoding: "URL_SAFE_TOKEN" diff --git a/docs/sources/microsoft-365/msft-onedrive/example-api-responses/original/list_groups_drives.json b/docs/sources/microsoft-365/msft-onedrive/example-api-responses/original/list_groups_drives.json new file mode 100644 index 0000000000..2aa08337ed --- /dev/null +++ b/docs/sources/microsoft-365/msft-onedrive/example-api-responses/original/list_groups_drives.json @@ -0,0 +1,46 @@ +{ + "@odata.nextLink": "https://graph.microsoft.com/v1.0/groups/6257b47d-9e87-418b-9ac2-031f09397de7/drives?$top=1&$skiptoken=aWQ9OUZCRjU2OUEtN0UwOC00RDFELTlFREMtMkY3ODg3MTUzNjY3", + "value": [ + { + "id": "b!-RIj2DuyvEyV1T4NlOaMHk8XkS_I8MdFlUCq1BlcjgmhRfAj3-Z8RY2VpuvV_tpd", + "driveType": "documentLibrary", + "createdDateTime": "2017-07-27T02:41:36Z", + "createdBy": { + "user": { + "id": "CE251278-EF9E-4FE5-833C-1D89EEAE68E0", + "displayName": "Ryan Gregg", + "email": "ryan@contoso.com" + } + }, + "lastModifiedDateTime": "2018-03-27T07:34:38Z", + "lastModifiedBy": { + "user": { + "id": "9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d", + "displayName": "Dana Lee", + "email": "dana@contoso.com" + } + } + }, + { + "id": "b!kjtJnMGCeEeNkZsY18PtOiNjCV0Z9s9Fqyly8jKvPEB2kal9T5pOT5y7TXClirlE", + "driveType": "documentLibrary", + "system": {}, + "createdDateTime": "2017-07-27T02:41:36Z", + "createdBy": { + "user": { + "id": "CE251278-EF9E-4FE5-833C-1D89EEAE68E0", + "displayName": "Ryan Gregg", + "email": "ryan@contoso.com" + } + }, + "lastModifiedDateTime": "2017-07-27T02:41:36Z", + "lastModifiedBy": { + "user": { + "id": "CE251278-EF9E-4FE5-833C-1D89EEAE68E0", + "displayName": "Ryan Gregg", + "email": "ryan@contoso.com" + } + } + } + ] +} diff --git a/docs/sources/microsoft-365/msft-onedrive/example-api-responses/original/list_drives.json b/docs/sources/microsoft-365/msft-onedrive/example-api-responses/original/list_user_drives.json similarity index 87% rename from docs/sources/microsoft-365/msft-onedrive/example-api-responses/original/list_drives.json rename to docs/sources/microsoft-365/msft-onedrive/example-api-responses/original/list_user_drives.json index 85b9dc59a2..d8d35b4f65 100644 --- a/docs/sources/microsoft-365/msft-onedrive/example-api-responses/original/list_drives.json +++ b/docs/sources/microsoft-365/msft-onedrive/example-api-responses/original/list_user_drives.json @@ -1,4 +1,5 @@ { + "@odata.nextLink": "https://graph.microsoft.com/v1.0/users/6257b47d-9e87-418b-9ac2-031f09397de7/drives?$top=1&$skiptoken=aWQ9OUZCRjU2OUEtN0UwOC00RDFELTlFREMtMkY3ODg3MTUzNjY3", "value": [ { "id": "b!-RIj2DuyvEyV1T4NlOaMHk8XkS_I8MdFlUCq1BlcjgmhRfAj3-Z8RY2VpuvV_tpd", diff --git a/docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized/list_groups_drives.json b/docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized/list_groups_drives.json new file mode 100644 index 0000000000..2b2df39695 --- /dev/null +++ b/docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized/list_groups_drives.json @@ -0,0 +1,42 @@ +{ + "@odata.nextLink":"https://graph.microsoft.com/v1.0/groups/6257b47d-9e87-418b-9ac2-031f09397de7/drives?$top=1&$skiptoken=aWQ9OUZCRjU2OUEtN0UwOC00RDFELTlFREMtMkY3ODg3MTUzNjY3", + "value":[ + { + "id":"b!-RIj2DuyvEyV1T4NlOaMHk8XkS_I8MdFlUCq1BlcjgmhRfAj3-Z8RY2VpuvV_tpd", + "driveType":"documentLibrary", + "createdDateTime":"2017-07-27T02:41:36Z", + "createdBy":{ + "user":{ + "id":"CE251278-EF9E-4FE5-833C-1D89EEAE68E0", + "email":"t~rhHXsIpQCoOYdgzj6URY4x8oUcvnLMLR5d71_wRuVAA@contoso.com" + } + }, + "lastModifiedDateTime":"2018-03-27T07:34:38Z", + "lastModifiedBy":{ + "user":{ + "id":"9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d", + "email":"t~1ECTeY42RlWDU6D4DtrXKyFmVrUHbEEpdYzI34l0y9Q@contoso.com" + } + } + }, + { + "id":"b!kjtJnMGCeEeNkZsY18PtOiNjCV0Z9s9Fqyly8jKvPEB2kal9T5pOT5y7TXClirlE", + "driveType":"documentLibrary", + "system":{ }, + "createdDateTime":"2017-07-27T02:41:36Z", + "createdBy":{ + "user":{ + "id":"CE251278-EF9E-4FE5-833C-1D89EEAE68E0", + "email":"t~rhHXsIpQCoOYdgzj6URY4x8oUcvnLMLR5d71_wRuVAA@contoso.com" + } + }, + "lastModifiedDateTime":"2017-07-27T02:41:36Z", + "lastModifiedBy":{ + "user":{ + "id":"CE251278-EF9E-4FE5-833C-1D89EEAE68E0", + "email":"t~rhHXsIpQCoOYdgzj6URY4x8oUcvnLMLR5d71_wRuVAA@contoso.com" + } + } + } + ] +} diff --git a/docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized/list_drives.json b/docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized/list_user_drives.json similarity index 87% rename from docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized/list_drives.json rename to docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized/list_user_drives.json index 91fc550413..8a17337025 100644 --- a/docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized/list_drives.json +++ b/docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized/list_user_drives.json @@ -1,4 +1,5 @@ { + "@odata.nextLink":"https://graph.microsoft.com/v1.0/users/6257b47d-9e87-418b-9ac2-031f09397de7/drives?$top=1&$skiptoken=aWQ9OUZCRjU2OUEtN0UwOC00RDFELTlFREMtMkY3ODg3MTUzNjY3", "value":[ { "id":"b!-RIj2DuyvEyV1T4NlOaMHk8XkS_I8MdFlUCq1BlcjgmhRfAj3-Z8RY2VpuvV_tpd", diff --git a/docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized_no-app-ids/list_drives.json b/docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized_no-app-ids/list_groups_drives.json similarity index 87% rename from docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized_no-app-ids/list_drives.json rename to docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized_no-app-ids/list_groups_drives.json index d133c46d6e..b060eaa7d2 100644 --- a/docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized_no-app-ids/list_drives.json +++ b/docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized_no-app-ids/list_groups_drives.json @@ -1,4 +1,5 @@ { + "@odata.nextLink":"https://graph.microsoft.com/v1.0/groups/6257b47d-9e87-418b-9ac2-031f09397de7/drives?$top=1&$skiptoken=aWQ9OUZCRjU2OUEtN0UwOC00RDFELTlFREMtMkY3ODg3MTUzNjY3", "value":[ { "id":"b!-RIj2DuyvEyV1T4NlOaMHk8XkS_I8MdFlUCq1BlcjgmhRfAj3-Z8RY2VpuvV_tpd", diff --git a/docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized_no-app-ids/list_user_drives.json b/docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized_no-app-ids/list_user_drives.json new file mode 100644 index 0000000000..cea365ceac --- /dev/null +++ b/docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized_no-app-ids/list_user_drives.json @@ -0,0 +1,42 @@ +{ + "@odata.nextLink":"https://graph.microsoft.com/v1.0/users/p~G-O6qnggmabXX7oVLICcae1h1B_h3yud3zcNymQoGVqSOg0H9jqiKau9wvs7oToujvTK_Woudb8vCT95nqMWc89UQSbrUBZGukrZoydhHl8/drives?$top=1&$skiptoken=aWQ9OUZCRjU2OUEtN0UwOC00RDFELTlFREMtMkY3ODg3MTUzNjY3", + "value":[ + { + "id":"b!-RIj2DuyvEyV1T4NlOaMHk8XkS_I8MdFlUCq1BlcjgmhRfAj3-Z8RY2VpuvV_tpd", + "driveType":"documentLibrary", + "createdDateTime":"2017-07-27T02:41:36Z", + "createdBy":{ + "user":{ + "id":"t~jL-PZwZ7AqMLlWzY4F0nkDdSpci8cF1GzIzZC51Y9Rg", + "email":"t~rhHXsIpQCoOYdgzj6URY4x8oUcvnLMLR5d71_wRuVAA@contoso.com" + } + }, + "lastModifiedDateTime":"2018-03-27T07:34:38Z", + "lastModifiedBy":{ + "user":{ + "id":"t~DTbvYdTNRIQXAF1SvLNyAIENog0-Dy0dxTEB2Yoo5Ys", + "email":"t~1ECTeY42RlWDU6D4DtrXKyFmVrUHbEEpdYzI34l0y9Q@contoso.com" + } + } + }, + { + "id":"b!kjtJnMGCeEeNkZsY18PtOiNjCV0Z9s9Fqyly8jKvPEB2kal9T5pOT5y7TXClirlE", + "driveType":"documentLibrary", + "system":{ }, + "createdDateTime":"2017-07-27T02:41:36Z", + "createdBy":{ + "user":{ + "id":"t~jL-PZwZ7AqMLlWzY4F0nkDdSpci8cF1GzIzZC51Y9Rg", + "email":"t~rhHXsIpQCoOYdgzj6URY4x8oUcvnLMLR5d71_wRuVAA@contoso.com" + } + }, + "lastModifiedDateTime":"2017-07-27T02:41:36Z", + "lastModifiedBy":{ + "user":{ + "id":"t~jL-PZwZ7AqMLlWzY4F0nkDdSpci8cF1GzIzZC51Y9Rg", + "email":"t~rhHXsIpQCoOYdgzj6URY4x8oUcvnLMLR5d71_wRuVAA@contoso.com" + } + } + } + ] +} diff --git a/docs/sources/microsoft-365/msft-onedrive/msft-onedrive.yaml b/docs/sources/microsoft-365/msft-onedrive/msft-onedrive.yaml index aa123d831a..545d6b9b65 100644 --- a/docs/sources/microsoft-365/msft-onedrive/msft-onedrive.yaml +++ b/docs/sources/microsoft-365/msft-onedrive/msft-onedrive.yaml @@ -1,184 +1,184 @@ --- endpoints: -- pathTemplate: "/v1.0/drives/{driveId}/activities" - allowedQueryParams: - - "$expand" - - "$skiptoken" - transforms: - - ! - jsonPaths: - - "$..user.email" - encoding: "URL_SAFE_TOKEN" - responseSchema: - type: "object" - properties: - '@microsoft.graph.hasMoreData': - type: "boolean" - '@odata.deltaLink': - type: "string" - '@odata.nextLink': - type: "string" - value: - type: "array" - items: - $ref: "#/definitions/ItemActivity" -- pathTemplate: "/v1.0/drives/{driveId}/items/{itemId}/activities" - allowedQueryParams: - - "$expand" - - "$skiptoken" - transforms: - - ! - jsonPaths: - - "$..user.email" - encoding: "URL_SAFE_TOKEN" - responseSchema: - type: "object" - properties: - '@microsoft.graph.hasMoreData': - type: "boolean" - '@odata.deltaLink': - type: "string" - '@odata.nextLink': - type: "string" - value: - type: "array" - items: - $ref: "#/definitions/ItemActivity" -- pathTemplate: "/v1.0/drives/{driveId}/root/delta" - allowedQueryParams: - - "token" - - "$select" - - "$expand" - - "$top" - transforms: - - ! - jsonPaths: - - "$..user.email" - encoding: "URL_SAFE_TOKEN" - responseSchema: - type: "object" - properties: - '@microsoft.graph.hasMoreData': - type: "boolean" - '@odata.deltaLink': - type: "string" - '@odata.nextLink': - type: "string" - value: - type: "array" - items: - $ref: "#/definitions/DriveItem" -- pathTemplate: "/v1.0/groups" - allowedQueryParams: - - "$top" - - "$select" - - "$skiptoken" - - "$orderby" - - "$count" - allowedRequestHeaders: - - "ConsistencyLevel" - transforms: - - ! - jsonPaths: - - "$..mail" - encoding: "URL_SAFE_TOKEN" - responseSchema: - type: "object" - properties: - '@microsoft.graph.hasMoreData': - type: "boolean" - '@odata.deltaLink': - type: "string" - '@odata.nextLink': - type: "string" - value: - type: "array" - items: - $ref: "#/definitions/GraphGroup" -- pathTemplate: "/v1.0/groups/{groupId}/drives" - allowedQueryParams: - - "$select" - - "$skiptoken" - - "$top" - - "$orderby" - - "$expand" - transforms: - - ! - jsonPaths: - - "$..user.email" - encoding: "URL_SAFE_TOKEN" - responseSchema: - type: "object" - properties: - '@microsoft.graph.hasMoreData': - type: "boolean" - '@odata.deltaLink': - type: "string" - '@odata.nextLink': - type: "string" - value: - type: "array" - items: - $ref: "#/definitions/Drive" -- pathTemplate: "/v1.0/users" - allowedQueryParams: - - "$top" - - "$select" - - "$skiptoken" - - "$orderby" - - "$count" - - "$filter" - allowedRequestHeaders: - - "ConsistencyLevel" - transforms: - - ! - jsonPaths: - - "$..employeeId" - - "$..mail" - - "$..otherMails[*]" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..proxyAddresses[*]" - regex: "(?i)^smtp:(.*)$" - responseSchema: - type: "object" - properties: - '@microsoft.graph.hasMoreData': - type: "boolean" - '@odata.deltaLink': - type: "string" - '@odata.nextLink': - type: "string" - value: - type: "array" - items: - $ref: "#/definitions/GraphUser" -- pathTemplate: "/v1.0/users/{userId}/drives" - allowedQueryParams: - - "$select" - - "$skiptoken" - - "$top" - - "$orderby" - - "$expand" - transforms: - - ! - jsonPaths: - - "$..user.email" - encoding: "URL_SAFE_TOKEN" - responseSchema: - type: "object" - properties: - '@microsoft.graph.hasMoreData': - type: "boolean" - '@odata.deltaLink': - type: "string" - '@odata.nextLink': - type: "string" - value: - type: "array" - items: - $ref: "#/definitions/Drive" + - pathTemplate: "/v1.0/drives/{driveId}/activities" + allowedQueryParams: + - "$expand" + - "$skiptoken" + transforms: + - ! + jsonPaths: + - "$..user.email" + encoding: "URL_SAFE_TOKEN" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/ItemActivity" + - pathTemplate: "/v1.0/drives/{driveId}/items/{itemId}/activities" + allowedQueryParams: + - "$expand" + - "$skiptoken" + transforms: + - ! + jsonPaths: + - "$..user.email" + encoding: "URL_SAFE_TOKEN" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/ItemActivity" + - pathRegex: "^/v1\\.0/drives/[^/]+/root/delta(\\(token=[^)]*\\))?(\\?.*)?$" + allowedQueryParams: + - "token" + - "$select" + - "$expand" + - "$top" + transforms: + - ! + jsonPaths: + - "$..user.email" + encoding: "URL_SAFE_TOKEN" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/DriveItem" + - pathTemplate: "/v1.0/groups" + allowedQueryParams: + - "$top" + - "$select" + - "$skiptoken" + - "$orderby" + - "$count" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..mail" + encoding: "URL_SAFE_TOKEN" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphGroup" + - pathTemplate: "/v1.0/groups/{groupId}/drives" + allowedQueryParams: + - "$select" + - "$skiptoken" + - "$top" + - "$orderby" + - "$expand" + transforms: + - ! + jsonPaths: + - "$..user.email" + encoding: "URL_SAFE_TOKEN" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/Drive" + - pathTemplate: "/v1.0/users" + allowedQueryParams: + - "$top" + - "$select" + - "$skiptoken" + - "$orderby" + - "$count" + - "$filter" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..employeeId" + - "$..mail" + - "$..otherMails[*]" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphUser" + - pathTemplate: "/v1.0/users/{userId}/drives" + allowedQueryParams: + - "$select" + - "$skiptoken" + - "$top" + - "$orderby" + - "$expand" + transforms: + - ! + jsonPaths: + - "$..user.email" + encoding: "URL_SAFE_TOKEN" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/Drive" definitions: ActivityItemRef: type: "object" @@ -192,7 +192,7 @@ definitions: type: "string" scheduledEndDateTime: $ref: "#/definitions/DateTimeTimeZone" - scheduledEndStartTime: + scheduledStartDateTime: $ref: "#/definitions/DateTimeTimeZone" status: type: "string" @@ -207,6 +207,19 @@ definitions: type: "array" items: $ref: "#/definitions/IdentitySet" + CustomTimeZone: + type: "object" + properties: + '@odata.type': + type: "string" + bias: + type: "integer" + daylightOffset: + $ref: "#/definitions/Offset" + name: + type: "string" + standardOffset: + $ref: "#/definitions/Offset" DateTimeTimeZone: type: "object" properties: @@ -219,7 +232,7 @@ definitions: type: "string" DeletedFacet: type: "object" - properties: {} + properties: { } DocumentActivityDetail: type: "object" properties: @@ -346,12 +359,16 @@ definitions: Identity: type: "object" properties: + applicationIdentityType: + type: "string" email: type: "string" id: type: "string" tenantId: type: "string" + userIdentityType: + type: "string" IdentitySet: type: "object" properties: @@ -371,13 +388,11 @@ definitions: $ref: "#/definitions/Identity" onPremises: $ref: "#/definitions/Identity" - phone: - $ref: "#/definitions/Identity" user: $ref: "#/definitions/Identity" ItemAction: type: "object" - properties: {} + properties: { } ItemActionSet: type: "object" properties: @@ -459,7 +474,7 @@ definitions: $ref: "#/definitions/WorkingHours" MalwareFacet: type: "object" - properties: {} + properties: { } MentionAction: type: "object" properties: @@ -467,6 +482,21 @@ definitions: type: "array" items: $ref: "#/definitions/IdentitySet" + Offset: + type: "object" + properties: + dayOccurrence: + type: "integer" + dayOfWeek: + type: "string" + daylightBias: + type: "integer" + month: + type: "integer" + time: + type: "string" + year: + type: "integer" Package: type: "object" properties: @@ -517,7 +547,7 @@ definitions: type: "string" RootFacet: type: "object" - properties: {} + properties: { } ShareAction: type: "object" properties: @@ -555,7 +585,7 @@ definitions: type: "string" SystemFacet: type: "object" - properties: {} + properties: { } VersionAction: type: "object" properties: @@ -574,3 +604,6 @@ definitions: startTime: type: "string" format: "time" + timeZone: + anyOf: + - $ref: "#/definitions/CustomTimeZone" diff --git a/docs/sources/microsoft-365/msft-onedrive/msft-onedrive_no-app-ids.yaml b/docs/sources/microsoft-365/msft-onedrive/msft-onedrive_no-app-ids.yaml index 2416cfb39e..f5d717d676 100644 --- a/docs/sources/microsoft-365/msft-onedrive/msft-onedrive_no-app-ids.yaml +++ b/docs/sources/microsoft-365/msft-onedrive/msft-onedrive_no-app-ids.yaml @@ -46,31 +46,6 @@ endpoints: type: "array" items: $ref: "#/definitions/ItemActivity" - - pathTemplate: "/v1.0/drives/{driveId}/root/delta" - allowedQueryParams: - - "token" - - "$select" - - "$expand" - - "$top" - transforms: - - ! - jsonPaths: - - "$..user.id" - - "$..user.email" - encoding: "URL_SAFE_TOKEN" - responseSchema: - type: "object" - properties: - '@microsoft.graph.hasMoreData': - type: "boolean" - '@odata.deltaLink': - type: "string" - '@odata.nextLink': - type: "string" - value: - type: "array" - items: - $ref: "#/definitions/DriveItem" - pathTemplate: "/v1.0/groups" allowedQueryParams: - "$top" @@ -176,6 +151,14 @@ endpoints: - "$..user.id" - "$..user.email" encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$.['@odata.nextLink']" + regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" + - ! + jsonPaths: + - "$.['@odata.nextLink']" + regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" pathParameterSchemas: userId: anyOf: @@ -194,6 +177,31 @@ endpoints: type: "array" items: $ref: "#/definitions/Drive" + - pathRegex: "^/v1\\.0/drives/[^/]+/root/delta(\\(token=[^)]*\\))?(\\?.*)?$" + allowedQueryParams: + - "token" + - "$select" + - "$expand" + - "$top" + transforms: + - ! + jsonPaths: + - "$..user.id" + - "$..user.email" + encoding: "URL_SAFE_TOKEN" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/DriveItem" definitions: ActivityItemRef: type: "object" @@ -207,7 +215,7 @@ definitions: type: "string" scheduledEndDateTime: $ref: "#/definitions/DateTimeTimeZone" - scheduledEndStartTime: + scheduledStartDateTime: $ref: "#/definitions/DateTimeTimeZone" status: type: "string" @@ -222,6 +230,19 @@ definitions: type: "array" items: $ref: "#/definitions/IdentitySet" + CustomTimeZone: + type: "object" + properties: + '@odata.type': + type: "string" + bias: + type: "integer" + daylightOffset: + $ref: "#/definitions/Offset" + name: + type: "string" + standardOffset: + $ref: "#/definitions/Offset" DateTimeTimeZone: type: "object" properties: @@ -234,7 +255,7 @@ definitions: type: "string" DeletedFacet: type: "object" - properties: {} + properties: { } DocumentActivityDetail: type: "object" properties: @@ -361,12 +382,16 @@ definitions: Identity: type: "object" properties: + applicationIdentityType: + type: "string" email: type: "string" id: type: "string" tenantId: type: "string" + userIdentityType: + type: "string" IdentitySet: type: "object" properties: @@ -386,13 +411,11 @@ definitions: $ref: "#/definitions/Identity" onPremises: $ref: "#/definitions/Identity" - phone: - $ref: "#/definitions/Identity" user: $ref: "#/definitions/Identity" ItemAction: type: "object" - properties: {} + properties: { } ItemActionSet: type: "object" properties: @@ -474,7 +497,7 @@ definitions: $ref: "#/definitions/WorkingHours" MalwareFacet: type: "object" - properties: {} + properties: { } MentionAction: type: "object" properties: @@ -482,6 +505,21 @@ definitions: type: "array" items: $ref: "#/definitions/IdentitySet" + Offset: + type: "object" + properties: + dayOccurrence: + type: "integer" + dayOfWeek: + type: "string" + daylightBias: + type: "integer" + month: + type: "integer" + time: + type: "string" + year: + type: "integer" Package: type: "object" properties: @@ -532,7 +570,7 @@ definitions: type: "string" RootFacet: type: "object" - properties: {} + properties: { } ShareAction: type: "object" properties: @@ -570,7 +608,7 @@ definitions: type: "string" SystemFacet: type: "object" - properties: {} + properties: { } VersionAction: type: "object" properties: @@ -589,3 +627,6 @@ definitions: startTime: type: "string" format: "time" + timeZone: + anyOf: + - $ref: "#/definitions/CustomTimeZone" diff --git a/docs/sources/microsoft-365/msft-teams/README.md b/docs/sources/microsoft-365/msft-teams/README.md index 35067e66ab..a657996454 100644 --- a/docs/sources/microsoft-365/msft-teams/README.md +++ b/docs/sources/microsoft-365/msft-teams/README.md @@ -75,4 +75,4 @@ In case of `PSEUDONYMIZE_APP_IDS` is set to `true` (default value), the `userId` ## Example Rules - [Example Rules](msft-teams.yaml) -- [Example Rules: no User IDs](msft-teams_no-userIds.yaml) \ No newline at end of file +- [Example Rules: no App IDs](msft-teams_no-app-ids.yaml) \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/original/Communications_callRecord_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/original/Communications_callRecord_v1.0.json index 7284b78a1a..8f4dc81a10 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/original/Communications_callRecord_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/original/Communications_callRecord_v1.0.json @@ -32,6 +32,38 @@ } } ], + "organizer_v2": { + "id": "5a4d3f22-0000-0000-0000-2a1e3c4d5b6a", + "identity": { + "user": { + "id": "821809f5-0000-0000-0000-3b5136c0e777", + "displayName": "Abbie Wilkins", + "tenantId": "dc368399-474c-4d40-900c-6265431fd81f" + } + } + }, + "participants_v2": [ + { + "id": "5a4d3f22-0000-0000-0000-2a1e3c4d5b6a", + "identity": { + "user": { + "id": "821809f5-0000-0000-0000-3b5136c0e777", + "displayName": "Abbie Wilkins", + "tenantId": "dc368399-474c-4d40-900c-6265431fd81f" + } + } + }, + { + "id": "6b5e4033-0000-0000-0000-3b2f4d5e6c7b", + "identity": { + "user": { + "id": "f69e2c00-0000-0000-0000-185e5f5f5d8a", + "displayName": "Owen Franklin", + "tenantId": "dc368399-474c-4d40-900c-6265431fd81f" + } + } + } + ], "sessions": [ { "modalities": [ diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/original/user.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/original/user.json new file mode 100644 index 0000000000..411a52ac11 --- /dev/null +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/original/user.json @@ -0,0 +1,23 @@ +{ + "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity", + "businessPhones": [ + "+1 412 555 0109" + ], + "displayName": "Megan Bowen", + "givenName": "Megan", + "jobTitle": "Auditor", + "mail": "MeganB@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "12/1110", + "preferredLanguage": "en-US", + "surname": "Bowen", + "userPrincipalName": "MeganB@M365x214355.onmicrosoft.com", + "id": "48d31887-5fad-4d73-a9f5-3c356e68a038", + "otherMails": [ + "megan@gmail.com" + ], + "proxyAddresses": [ + "SMTP:MeganB@M365x214355.onmicrosoft.com", + "smtp:megan@M365x214355.onmicrosoft.com" + ] +} diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Chats_messages_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Chats_messages_v1.0.json index c20145c0cc..148aac024b 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Chats_messages_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Chats_messages_v1.0.json @@ -1,6 +1,4 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#chats('19%3A2da4c29f6d7041eca70b638b43d45437%40thread.v2')/messages", - "@odata.count":3, "@odata.nextLink":"https://graph.microsoft.com/v1.0/chats/19:2da4c29f6d7041eca70b638b43d45437@thread.v2/messages?$top=2&$skiptoken=M2UyZDAwMDAwMDMxMzkzYTMyNjQ2MTM0NjMzMjM5NjYzNjY0MzczMDM0MzE2NTYzNjEzNzMwNjIzNjMzMzg2MjM0MzM2NDM0MzUzNDMzMzc0MDc0Njg3MjY1NjE2NDJlNzYzMjAxZThmYjY4M2Y3ODAxMDAwMDg4NjA5ODdhNzgwMTAwMDB8MTYxNjk2NDUwOTgzMg%3d%3d", "value":[ { @@ -12,14 +10,10 @@ "lastModifiedDateTime":"2021-03-28T20:48:29.832Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":null, - "summary":null, "chatId":"19:2da4c29f6d7041eca70b638b43d45437@thread.v2", "importance":"normal", "locale":"en-us", - "webUrl":null, "channelIdentity":null, - "policyViolation":null, "eventDetail":null, "from":{ "application":null, @@ -30,11 +24,14 @@ } }, "body":{ - "contentType":"text" + "contentType":"text", + "+content:textDigest":{ + "length":11, + "word_count":2 + } }, "mentions":[ ], - "reactions":[ ], - "messageHistory":[ ] + "reactions":[ ] }, { "id":"1615971548136", @@ -45,14 +42,10 @@ "lastModifiedDateTime":"2021-03-17T08:59:08.136Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":null, - "summary":null, "chatId":"19:2da4c29f6d7041eca70b638b43d45437@thread.v2", "importance":"normal", "locale":"en-us", - "webUrl":null, "channelIdentity":null, - "policyViolation":null, "eventDetail":null, "from":{ "application":null, @@ -63,11 +56,14 @@ } }, "body":{ - "contentType":"html" + "contentType":"html", + "+content:textDigest":{ + "length":466, + "word_count":7 + } }, "mentions":[ ], - "reactions":[ ], - "messageHistory":[ ] + "reactions":[ ] }, { "id":"1615943825123", @@ -78,24 +74,22 @@ "lastModifiedDateTime":"2021-03-1706:47:05.123Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":null, - "summary":null, "chatId":"19:2da4c29f6d7041eca70b638b43d45437@thread.v2", "importance":"normal", "locale":"en-us", - "webUrl":null, "channelIdentity":null, - "policyViolation":null, "from":null, "body":{ - "contentType":"html" + "contentType":"html", + "+content:textDigest":{ + "length":21, + "word_count":1 + } }, "mentions":[ ], "reactions":[ ], - "messageHistory":[ ], "eventDetail":{ "@odata.type":"#microsoft.graph.chatRenamedEventMessageDetail", - "chatId":"19:2da4c29f6d7041eca70b638b43d45437@thread.v2", "initiator":{ "application":null, "device":null, @@ -107,4 +101,4 @@ } } ] -} +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecord_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecord_v1.0.json index 2aab5f0600..259742ad3a 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecord_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecord_v1.0.json @@ -1,5 +1,4 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#communications/callRecords(sessions(segments()))/$entity", "version":1, "type":"peerToPeer", "modalities":[ @@ -29,6 +28,35 @@ } } ], + "organizer_v2":{ + "id":"5a4d3f22-0000-0000-0000-2a1e3c4d5b6a", + "identity":{ + "user":{ + "id":"821809f5-0000-0000-0000-3b5136c0e777", + "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" + } + } + }, + "participants_v2":[ + { + "id":"5a4d3f22-0000-0000-0000-2a1e3c4d5b6a", + "identity":{ + "user":{ + "id":"821809f5-0000-0000-0000-3b5136c0e777", + "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" + } + } + }, + { + "id":"6b5e4033-0000-0000-0000-3b2f4d5e6c7b", + "identity":{ + "user":{ + "id":"f69e2c00-0000-0000-0000-185e5f5f5d8a", + "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" + } + } + } + ], "sessions":[ { "modalities":[ @@ -39,18 +67,7 @@ "id":"e523d2ed-2966-4b6b-925b-754a88034cc5", "isTest":false, "caller":{ - "@odata.type":"#microsoft.graph.callRecords.participantEndpoint", - "cpuName":"Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz", - "cpuCoresCount":2, - "cpuProcessorSpeedInMhz":2594, - "userAgent":{ - "@odata.type":"#microsoft.graph.callRecords.clientUserAgent", - "headerValue":"RTCC/7.0.0.0 UCWA/7.0.0.0 AndroidLync/6.25.0.27 (SM-G930U Android 8.0.0)", - "platform":"android", - "productFamily":"skypeForBusiness" - }, "identity":{ - "@odata.type":"#microsoft.graph.identitySet", "user":{ "id":"821809f5-0000-0000-0000-3b5136c0e777", "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" @@ -58,169 +75,13 @@ } }, "callee":{ - "@odata.type":"#microsoft.graph.callRecords.participantEndpoint", - "cpuName":"Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz", - "cpuCoresCount":8, - "cpuProcessorSpeedInMhz":2295, - "userAgent":{ - "@odata.type":"#microsoft.graph.callRecords.clientUserAgent", - "headerValue":"UCCAPI/16.0.12527.20122 OC/16.0.12527.20194 (Skype for Business)", - "platform":"windows", - "productFamily":"skypeForBusiness" - }, "identity":{ "user":{ "id":"f69e2c00-0000-0000-0000-185e5f5f5d8a", "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" } - }, - "feedback":{ - "rating":"poor", - "tokens":{ - "NoSound":false, - "OtherNoSound":false, - "Echo":false, - "Noisy":true, - "LowVolume":false, - "Stopped":false, - "DistortedSound":false, - "Interruptions":false - } - } - }, - "segments":[ - { - "startDateTime":"2020-02-25T18:52:21.2169889Z", - "endDateTime":"2020-02-25T18:52:46.7640013Z", - "id":"e523d2ed-2966-4b6b-925b-754a88034cc5", - "caller":{ - "@odata.type":"#microsoft.graph.callRecords.participantEndpoint", - "cpuName":"Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz", - "cpuCoresCount":8, - "cpuProcessorSpeedInMhz":2295, - "userAgent":{ - "@odata.type":"#microsoft.graph.callRecords.clientUserAgent", - "headerValue":"RTCC/7.0.0.0 UCWA/7.0.0.0 AndroidLync/6.25.0.27 (SM-G930U Android 8.0.0)", - "platform":"android", - "productFamily":"skypeForBusiness" - }, - "identity":{ - "user":{ - "id":"821809f5-0000-0000-0000-3b5136c0e777", - "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" - } - } - }, - "callee":{ - "@odata.type":"#microsoft.graph.callRecords.participantEndpoint", - "cpuName":"Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz", - "cpuCoresCount":8, - "cpuProcessorSpeedInMhz":2295, - "userAgent":{ - "@odata.type":"#microsoft.graph.callRecords.clientUserAgent", - "headerValue":"UCCAPI/16.0.12527.20122 OC/16.0.12527.20194 (Skype for Business)", - "platform":"windows", - "productFamily":"skypeForBusiness" - }, - "identity":{ - "user":{ - "id":"f69e2c00-0000-0000-0000-185e5f5f5d8a", - "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" - } - } - }, - "media":[ - { - "label":"main-audio", - "callerNetwork":{ - "linkSpeed":54000000, - "connectionType":"wifi", - "port":27288, - "relayPort":53889, - "dnsSuffix":null, - "sentQualityEventRatio":0, - "receivedQualityEventRatio":0.27, - "delayEventRatio":0, - "bandwidthLowEventRatio":0 - }, - "calleeNetwork":{ - "linkSpeed":4294967295, - "connectionType":"wired", - "port":50011, - "relayPort":52810, - "dnsSuffix":null, - "sentQualityEventRatio":0.31, - "receivedQualityEventRatio":0, - "delayEventRatio":0, - "bandwidthLowEventRatio":0 - }, - "callerDevice":{ - "receivedSignalLevel":-10, - "receivedNoiseLevel":-68, - "initialSignalLevelRootMeanSquare":60.25816, - "renderZeroVolumeEventRatio":1, - "renderMuteEventRatio":1, - "micGlitchRate":23, - "speakerGlitchRate":3830 - }, - "calleeDevice":{ - "captureDeviceDriver":"Microsoft: 5.0.8638.1100", - "renderDeviceDriver":"Microsoft: 5.0.8638.1100", - "receivedSignalLevel":-14, - "receivedNoiseLevel":-86, - "initialSignalLevelRootMeanSquare":146.7885, - "micGlitchRate":143, - "speakerGlitchRate":182 - }, - "streams":[ - { - "streamId":"1504545584", - "streamDirection":"callerToCallee", - "averageAudioDegradation":null, - "averageJitter":"PT0.016S", - "maxJitter":"PT0.021S", - "averagePacketLossRate":0, - "maxPacketLossRate":0, - "averageRatioOfConcealedSamples":null, - "maxRatioOfConcealedSamples":null, - "averageRoundTripTime":"PT0.061S", - "maxRoundTripTime":"PT0.079S", - "packetUtilization":67, - "averageBandwidthEstimate":9965083, - "wasMediaBypassed":false, - "averageAudioNetworkJitter":"PT0.043S", - "maxAudioNetworkJitter":"PT0.046S", - "rmsFreezeDuration":null, - "averageFreezeDuration":null, - "isAudioForwardErrorCorrectionUsed":false - }, - { - "streamId":"1785122252", - "streamDirection":"calleeToCaller", - "averageAudioDegradation":1.160898, - "averageJitter":"PT0.007S", - "maxJitter":"PT0.012S", - "averagePacketLossRate":0.01381693, - "maxPacketLossRate":0.03738318, - "averageRatioOfConcealedSamples":0.06233422, - "maxRatioOfConcealedSamples":0.07192807, - "averageRoundTripTime":"PT0.064S", - "maxRoundTripTime":"PT0.106S", - "packetUtilization":709, - "averageBandwidthEstimate":15644878, - "wasMediaBypassed":false, - "averageAudioNetworkJitter":"PT0.266S", - "maxAudioNetworkJitter":"PT0.474S", - "rmsFreezeDuration":null, - "averageFreezeDuration":null, - "isAudioForwardErrorCorrectionUsed":null - } - ] - } - ] } - ] + } } - ], - "sessions@odata.nextLink":"https://graph.microsoft.com/v1.0/$metadata#communications/callRecords('e523d2ed-2966-4b6b-925b-754a88034cc5')/sessions?$expand=segments&$skiptoken=abc" -} + ] +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecords_getDirectRoutingCalls_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecords_getDirectRoutingCalls_v1.0.json index 609d05c0bb..d9c0103cdf 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecords_getDirectRoutingCalls_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecords_getDirectRoutingCalls_v1.0.json @@ -1,6 +1,4 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#Collection(microsoft.graph.callRecords.directRoutingLogRow)", - "@odata.count":1000, "value":[ { "id":"9e8bba57-dc14-533a-a7dd-f0da6575eed1", @@ -15,12 +13,9 @@ "successfulCall":true, "mediaPathLocation":"USWE", "signalingLocation":"EUNO", - "finalSipCode":0, - "callEndSubReason":540000, - "finalSipCodePhrase":"BYE", "trunkFullyQualifiedDomainName":"tll-audiocodes01.adatum.biz", "mediaBypassEnabled":false } ], "@odata.nextLink":"https://graph.microsoft.com/v1.0/communications/callRecords/getDirectRoutingCalls(fromDateTime=2019-11-01,toDateTime=2019-12-01)?$skip=1000" -} +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecords_getPstnCalls_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecords_getPstnCalls_v1.0.json index 0ec2963dac..f5da3fa0ff 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecords_getPstnCalls_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecords_getPstnCalls_v1.0.json @@ -1,6 +1,4 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#Collection(microsoft.graph.callRecords.pstnCallLogRow)", - "@odata.count":1000, "value":[ { "id":"9c4984c7-6c3c-427d-a30c-bd0b2eacee90", diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecords_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecords_v1.0.json index 342b44b88d..57ec2307c8 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecords_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_callRecords_v1.0.json @@ -1,5 +1,4 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#communications/callRecords", "value":[ { "id":"3cf3bbc8-b21d-4f2e-bfd0-b13603ae6c65", @@ -18,6 +17,7 @@ } }, "organizer_v2":{ + "id":"821809f5-0000-0000-0000-3b5136c0e777", "identity":{ "user":{ "id":"821809f5-0000-0000-0000-3b5136c0e777", @@ -43,10 +43,9 @@ } }, "organizer_v2":{ + "id":"+5564981205182", "identity":{ - "user":null, - "acsUser":null, - "spoolUser":null + "user":null } } } diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_calls_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_calls_v1.0.json index 98b911137d..887a65d0a6 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_calls_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Communications_calls_v1.0.json @@ -1,57 +1,25 @@ { - "@odata.type":"#microsoft.graph.call", "state":"established", "direction":"outgoing", - "callbackUri":"https://bot.contoso.com/callback", "source":{ - "@odata.type":"#microsoft.graph.participantInfo", "identity":{ - "@odata.type":"#microsoft.graph.identitySet", "application":{ - "@odata.type":"#microsoft.graph.identity", "id":"2891555a-92ff-42e6-80fa-6e1300c6b5c6" } }, - "region":null, - "languageId":null + "region":null }, "targets":[ { - "@odata.type":"#microsoft.graph.invitationParticipantInfo", "identity":{ - "@odata.type":"#microsoft.graph.identitySet", "user":{ - "@odata.type":"#microsoft.graph.identity", "id":"112f7296-5fa4-42ca-bae8-6a692b15d4b8" } } } ], - "requestedModalities":[ - "audio" - ], - "mediaConfig":{ - "@odata.type":"#microsoft.graph.serviceHostedMediaConfig", - "preFetchMedia":[ - { - "uri":"https://cdn.contoso.com/beep.wav", - "resourceId":"f8971b04-b53e-418c-9222-c82ce681a582" - }, - { - "uri":"https://cdn.contoso.com/cool.wav", - "resourceId":"86dc814b-c172-4428-9112-60f8ecae1edb" - } - ] - }, "myParticipantId":"499ff390-7a72-40e8-83a0-8fac6295ae7e", "id":"2e1a0b00-2db4-4022-9570-243709c565ab", - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#communications/calls/$entity", - "subject":null, - "ringingTimeoutInSeconds":null, - "resultInfo":null, - "answeredBy":null, "chatInfo":null, - "meetingInfo":null, - "transcription":null, - "toneInfo":null -} + "meetingInfo":null +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_allChannels_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_allChannels_v1.0.json index 7116819fb6..7f0d200160 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_allChannels_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_allChannels_v1.0.json @@ -1,18 +1,16 @@ { "value":[ { - "@odata.id":"https://graph.microsoft.com/v1.0/tenants/b3246f44-b4gb-4627-96c6-25b18fa2c910/teams/893075dd-2487-4122-925f-022c42e20265/channels/19:561fbdbbfca848a484f0a6f00ce9dbbd@thread.tacv2", "id":"19:561fbdbbfca848a484f0a6f00ce9dbbd@thread.tacv2", "createdDateTime":"2020-05-27T19:22:25.692Z", "membershipType":"standard", "tenantId":"b3246f44-b4gb-4627-96c6-25b18fa2c910" }, { - "@odata.id":"https://graph.microsoft.com/v1.0/tenants/b3246f44-b4gb-5678-96c6-25b18fa2c910/teams/893075dd-5678-5634-925f-022c42e20265/channels/19:561fbdbbfca848a484gabdf00ce9dbbd@thread.tacv", "id":"19:561fbdbbfca848a484gabdf00ce9dbbd@thread.tacv2", "createdDateTime":"2020-05-27T19:22:25.692Z", "membershipType":"shared", "tenantId":"b3246f44-b4gb-5678-96c6-25b18fa2c910" } ] -} +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_channels_messages_delta_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_channels_messages_delta_v1.0.json index 33841e6c86..162ebecf8f 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_channels_messages_delta_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_channels_messages_delta_v1.0.json @@ -1,9 +1,7 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#Collection(chatMessage)", "@odata.nextLink":"https://graph.microsoft.com/v1.0/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages/delta?$skiptoken=-FG3FPHv7HuyuazNLuy3eXlzQGbEjYLUsW9-pYkmXgn5KGsaOwrCoor2W23dGNNM1KtAX4AyvpFQNVsBgsEwUOX9lw8x9zDumgJy-C-UbjZLlZDQACyC9FyrVelZus9n.--rshdLwy_WBFJd8anPXJPbSUtUD7r3V4neB5tcrG58", "value":[ { - "@odata.type":"#microsoft.graph.chatMessage", "replyToId":null, "etag":"1606515483514", "messageType":"message", @@ -11,13 +9,9 @@ "lastModifiedDateTime":"2020-11-27T22:18:03.514Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":null, - "summary":null, "chatId":null, "importance":"normal", "locale":"en-us", - "webUrl":"https://teams.microsoft.com/l/message/19%3A4a95f7d8db4c4e7fae857bcebe0623e6%40thread.tacv2/1606515483514?groupId=fbe2bf47-16c8-47cf-b4a5-4b9b187c508b&tenantId=2432b57b-0abd-43db-aa7b-16eadd115d34&createdTime=1606515483514&parentMessageId=1606515483514", - "policyViolation":null, "eventDetail":null, "id":"1606515483514", "from":{ @@ -25,25 +19,26 @@ "device":null, "conversation":null, "user":{ - "@odata.type":"#microsoft.graph.teamworkUserIdentity", "id":"8ea0e38b-efb3-4757-924a-5f94061cf8c2", "userIdentityType":"aadUser", "tenantId":"e61ef81e-8bd8-476a-92e8-4a62f8426fca" } }, "body":{ - "contentType":"text" + "contentType":"text", + "+content:textDigest":{ + "length":4, + "word_count":1 + } }, "channelIdentity":{ "teamId":"fbe2bf47-16c8-47cf-b4a5-4b9b187c508b", "channelId":"19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2" }, "mentions":[ ], - "reactions":[ ], - "messageHistory":[ ] + "reactions":[ ] }, { - "@odata.type":"#microsoft.graph.chatMessage", "replyToId":null, "etag":"1606691795113", "messageType":"message", @@ -51,13 +46,9 @@ "lastModifiedDateTime":"2020-11-29T23:16:35.113Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":null, - "summary":null, "chatId":null, "importance":"normal", "locale":"en-us", - "webUrl":"https://teams.microsoft.com/l/message/19%3A4a95f7d8db4c4e7fae857bcebe0623e6%40thread.tacv2/1606691795113?groupId=fbe2bf47-16c8-47cf-b4a5-4b9b187c508b&tenantId=2432b57b-0abd-43db-aa7b-16eadd115d34&createdTime=1606691795113&parentMessageId=1606691795113", - "policyViolation":null, "eventDetail":null, "id":"1606691795113", "from":{ @@ -65,22 +56,24 @@ "device":null, "conversation":null, "user":{ - "@odata.type":"#microsoft.graph.teamworkUserIdentity", "id":"8ea0e38b-efb3-4757-924a-5f94061cf8c2", "userIdentityType":"aadUser", "tenantId":"e61ef81e-8bd8-476a-92e8-4a62f8426fca" } }, "body":{ - "contentType":"text" + "contentType":"text", + "+content:textDigest":{ + "length":39, + "word_count":5 + } }, "channelIdentity":{ "teamId":"fbe2bf47-16c8-47cf-b4a5-4b9b187c508b", "channelId":"19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2" }, "mentions":[ ], - "reactions":[ ], - "messageHistory":[ ] + "reactions":[ ] } ] -} +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_channels_messages_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_channels_messages_v1.0.json index e6e35f1873..f48bb0949e 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_channels_messages_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_channels_messages_v1.0.json @@ -1,6 +1,4 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#teams('fbe2bf47-16c8-47cf-b4a5-4b9b187c508b')/channels('19%3A4a95f7d8db4c4e7fae857bcebe0623e6%40thread.tacv2')/messages", - "@odata.count":3, "@odata.nextLink":"https://graph.microsoft.com/v1.0/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages?$skiptoken=%5b%7B%22token%22%3a%22%2bRID%3a~vpsQAJ9uAC047gwAAACcBQ%3d%3d%23RT%3a1%23TRC%3a20%23RTD%3aAyAER1ygxSHVHGAn2S99BTI6OzViOjZnOGU5ZWM1ZDVmOGdiZjk2OGNkZmNmMTczNGY3QXVpc2ZiZS91YmR3MzwyNzIyNDY2OTU0NTg6AA%3d%3d%23ISV%3a2%23IEO%3a65551%23QCF%3a3%23FPC%3aAggEAAAAcBYAABUFAADQKgAABAAAAHAWAAACALu4GwAAAHAWAAACAPSTMwAAAHAWAACaAFWa84BXgQKAEIAMgBaAE4AUgAuAAoAIwAIgACAAAiAACAABACCAAAEVgBSAI4AYgA%2bAGQAEEAAQAAEABACAAAIEEBBAACAYgB%2bAH4AbgBqACoAHwAICCBAEEIAAAgEQAACAIoAZgB2ADoAMgAKAPoAZgB2AJoAXgBIAgiAAQUqLF4AJgALACARAgBCACoAfgB6AIwABgYCQAAFXAAAAcBYAAAYA%2f50ZgGeEXwAAAHAWAAAEAPaBS4V7AAAAcBYAAAIA1aSJAAAAcBYAAAIAtLmbAAAAcBYAAAIAqKXdAAAAcBYAAAQAppUugOMAAABwFgAABADQoAWA6wAAAHAWAAAEABGl94M5AAAA0CoAAAYA6pF7iYOBaQIAANAqAAAcAEUPAMAAMAACAQCBAHQAADDAgCAAQgByAQAzUJDRBAAA0CoAAAQAETwKAA4FAADQKgAAAgBekRUFAADQKgAAHAB2pQCABYAMgJeAH4ATgAGAvIIIgASABIAFgCWA%22%2c%22range%22%3a%7B%22min%22%3a%2205C1D79B33ADE4%22%2c%22max%22%3a%2205C1D7A52F89EC%22%7D%7D%5d", "value":[ { @@ -12,13 +10,9 @@ "lastModifiedDateTime":"2021-03-28T21:11:12.395Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":null, - "summary":null, "chatId":null, "importance":"normal", "locale":"en-us", - "webUrl":"https://teams.microsoft.com/l/message/19%3A4a95f7d8db4c4e7fae857bcebe0623e6%40thread.tacv2/1616965872395?groupId=fbe2bf47-16c8-47cf-b4a5-4b9b187c508b&tenantId=2432b57b-0abd-43db-aa7b-16eadd115d34&createdTime=1616965872395&parentMessageId=1616965872395", - "policyViolation":null, "eventDetail":null, "from":{ "application":null, @@ -29,7 +23,11 @@ } }, "body":{ - "contentType":"html" + "contentType":"html", + "+content:textDigest":{ + "length":38, + "word_count":5 + } }, "channelIdentity":{ "teamId":"fbe2bf47-16c8-47cf-b4a5-4b9b187c508b", @@ -49,8 +47,7 @@ } } ], - "reactions":[ ], - "messageHistory":[ ] + "reactions":[ ] }, { "id":"1616963377068", @@ -61,13 +58,9 @@ "lastModifiedDateTime":"2021-03-28T20:29:37.068Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":"", - "summary":null, "chatId":null, "importance":"normal", "locale":"en-us", - "webUrl":"https://teams.microsoft.com/l/message/19%3A4a95f7d8db4c4e7fae857bcebe0623e6%40thread.tacv2/1616963377068?groupId=fbe2bf47-16c8-47cf-b4a5-4b9b187c508b&tenantId=2432b57b-0abd-43db-aa7b-16eadd115d34&createdTime=1616963377068&parentMessageId=1616963377068", - "policyViolation":null, "eventDetail":null, "from":{ "application":null, @@ -78,15 +71,18 @@ } }, "body":{ - "contentType":"html" + "contentType":"html", + "+content:textDigest":{ + "length":1040, + "word_count":13 + } }, "channelIdentity":{ "teamId":"fbe2bf47-16c8-47cf-b4a5-4b9b187c508b", "channelId":"19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2" }, "mentions":[ ], - "reactions":[ ], - "messageHistory":[ ] + "reactions":[ ] }, { "id":"1616883610266", @@ -97,16 +93,16 @@ "lastModifiedDateTime":"2021-03-28T03:50:10.266Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":null, - "summary":null, "chatId":null, "importance":"normal", "locale":"en-us", - "webUrl":"https://teams.microsoft.com/l/message/19%3A4a95f7d8db4c4e7fae857bcebe0623e6%40thread.tacv2/1616883610266?groupId=fbe2bf47-16c8-47cf-b4a5-4b9b187c508b&tenantId=2432b57b-0abd-43db-aa7b-16eadd115d34&createdTime=1616883610266&parentMessageId=1616883610266", - "policyViolation":null, "from":null, "body":{ - "contentType":"html" + "contentType":"html", + "+content:textDigest":{ + "length":21, + "word_count":1 + } }, "channelIdentity":{ "teamId":"fbe2bf47-16c8-47cf-b4a5-4b9b187c508b", @@ -114,10 +110,8 @@ }, "mentions":[ ], "reactions":[ ], - "messageHistory":[ ], "eventDetail":{ "@odata.type":"#microsoft.graph.teamDescriptionUpdatedEventMessageDetail", - "teamId":"fbe2bf47-16c8-47cf-b4a5-4b9b187c508b", "initiator":{ "application":null, "device":null, @@ -129,4 +123,4 @@ } } ] -} +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_v1.0.json index 78ea10a03b..8cd99c2f71 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Teams_v1.0.json @@ -1,14 +1,10 @@ { "value":[ { - "@odata.type":"#microsoft.graph.associatedTeamInfo", - "id":"b695c5a5-c5a5-b695-a5c5-95b6a5c595b6", - "tenantId":"172b0cce-e65d-7hd4-9a49-91d9f2e8493a" + "id":"b695c5a5-c5a5-b695-a5c5-95b6a5c595b6" }, { - "@odata.type":"#microsoft.graph.associatedTeamInfo", - "id":"b695c5a5-8934-b695-a5c5-95b6a5c595b6", - "tenantId":"172b0cce-8961-7hd4-9a49-91d9f2e8493a" + "id":"b695c5a5-8934-b695-a5c5-95b6a5c595b6" } ] -} +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Users_chats_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Users_chats_v1.0.json index eb318bf0f6..c71b5b65ec 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Users_chats_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Users_chats_v1.0.json @@ -1,10 +1,9 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#chats", - "@odata.count":3, "@odata.nextLink":"https://graph.microsoft.com/v1.0/users/48d31887-5fad-4d73-a9f5-3c356e68a038/chats?$expand=lastMessagePreview&$skiptoken=1.kscDYs0BDcYAAAEP8D2BqlByb3BlcnRpZXOCqVN5bmNTdGF0ZdnkZXlKa1pXeHBkbVZ5WldSVFpXZHRaVzUwY3lJNlczc2ljM1JoY25RaU9pSXlNREkwTFRBBADwrnhWREV3T2pBNE9qQTNMamsxTVNzd01Eb3dNQ0lzSW1WdVpDSTZJakl3TWpRdE1EZ3RNRFZVTURJNk1UVTZNVGd1TVRFck1EQTZNREFpZlYwc0lucGxjbTlNVFZOVVJHVnNhWFpsY21Wa1UyVm5iV1Z1ZEhNaU9sdGRMQ0p6YjNKMFQzSmtaWElpT2pBc0ltbHVZMngxWkdWYVpYSnZURTFUVkNJNlptRnNjMlY5rExhc3RQYWdlU2l6ZaIyMA%3d%3d", "value":[ { "id":"19:meeting_MjdhNjM4YzUtYzExZi00OTFkLTkzZTAtNTVlNmZmMDhkNGU2@thread.v2", + "topic":"", "createdDateTime":"2020-12-08T23:53:05.801Z", "lastUpdatedDateTime":"2020-12-08T23:58:32.511Z", "chatType":"meeting", @@ -16,32 +15,18 @@ "lastMessagePreview":{ "id":"1711966087452", "createdDateTime":"2024-04-01T10:08:07.452Z", - "isDeleted":false, "messageType":"unknownFutureValue", "from":null, "body":{ - "contentType":"html" + "contentType":"html", + "content":"" }, "eventDetail":{ "@odata.type":"#microsoft.graph.membersAddedEventMessageDetail", - "visibleHistoryStartDateTime":"2024-04-01T10:08:06.302Z", - "members":[ - { - "id":"7b622a03-ca9d-4506-9aae-2d691f26cd27", - "userIdentityType":"aadUser", - "tenantId":"2ae41f0c-acca-40f1-9c63-49475ff38512" - }, - { - "id":"48d31887-5fad-4d73-a9f5-3c356e68a038", - "userIdentityType":"aadUser", - "tenantId":"dcd219dd-bc68-4b9b-bf0b-4a33a796be35" - } - ], "initiator":{ "application":null, "device":null, "user":{ - "@odata.type":"#microsoft.graph.teamworkUserIdentity", "id":"7b622a03-ca9d-4506-9aae-2d691f26cd27", "userIdentityType":"aadUser", "tenantId":"2ae41f0c-acca-40f1-9c63-49475ff38512" @@ -52,6 +37,7 @@ }, { "id":"19:561082c0f3f847a58069deb8eb300807@thread.v2", + "topic":"", "createdDateTime":"2020-12-03T19:41:07.054Z", "lastUpdatedDateTime":"2020-12-08T23:53:11.012Z", "chatType":"group", @@ -63,6 +49,7 @@ }, { "id":"19:d74fc2ed-cb0e-4288-a219-b5c71abaf2aa_8c0a1a67-50ce-4114-bb6c-da9c5dbcf6ca@unq.gbl.spaces", + "topic":null, "createdDateTime":"2020-12-04T23:10:28.51Z", "lastUpdatedDateTime":"2020-12-04T23:10:36.925Z", "chatType":"oneOnOne", diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Users_onlineMeetings_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Users_onlineMeetings_v1.0.json index 983d6b2d2e..4d5452aae6 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Users_onlineMeetings_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Users_onlineMeetings_v1.0.json @@ -1,14 +1,5 @@ { - "@odata.type":"#microsoft.graph.onlineMeeting", - "autoAdmittedUsers":"everyone", - "audioConferencing":{ - "tollNumber":"5552478", - "tollFreeNumber":"5550588", - "ConferenceId":"9999999", - "dialinUrl":"https://dialin.teams.microsoft.com/6787A136-B9B8-4D39-846C-C0F1FF937F10?id=xxxxxxx" - }, "chatInfo":{ - "@odata.type":"#microsoft.graph.chatInfo", "threadId":"19:cbee7c1c860e465cebf7bee0d@thread.skype", "messageId":"153367081" }, @@ -17,23 +8,18 @@ "id":"112f7296-5fa4-42ca-bae8-6a692b15d4b8_19:cbee7c1c860e465f8258e3cebf7bee0d@thread.skype", "joinWebUrl":"https://teams.microsoft.com/l/meetup-join/19%3a:meeting_NTg0NmQ3NTctZDVkZC00YzRhLThmNmEtOGQDdmZDZk@thread.v2/0?context=%7b%22Tid%22%3a%aa67bd4c-8475-432d-bd41-39f255720e0a%22%2c%22Oid%22%3a%22112f7296-5fa4-42ca-bb15d4b8%22%7d", "participants":{ - "@odata.type":"#microsoft.graph.meetingParticipants", "attendees":[ { - "@odata.type":"#microsoft.graph.identitySet", "identity":{ "user":{ - "@odata.type":"#microsoft.graph.identity", "id":"112f7296-5ca-bae8-6a692b15d4b8" } } } ], "organizer":{ - "@odata.type":"#microsoft.graph.identitySet", "identity":{ "user":{ - "@odata.type":"#microsoft.graph.identity", "id":"5810cedeb-b2c1-e9bd5d53ec96" } } @@ -41,13 +27,6 @@ }, "startDateTime":"2018-05-30T00:30:00Z", "videoTeleconferenceId":"123456789", - "lobbyBypassSettings":{ - "scope":"everyone", - "isDialInBypassEnabled":true - }, - "joinMeetingIdSettings":{ - "joinMeetingId":"1234567890" - }, - "isEntryExitAnnounced":true, + "lobbyBypassSettings":{ }, "allowedPresenters":"everyone" } \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Users_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Users_v1.0.json index 19f0231059..ab1bda21f6 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Users_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/Users_v1.0.json @@ -1,13 +1,8 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users", "value":[ { "id":"cdfb873d-61f9-4656-bbbb-9e49fba4de97", - "businessPhones":[ ], "mail":"t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", - "officeLocation":null, - "preferredLanguage":"en-US", - "userPrincipalName":"t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", "otherMails":[ "t~DE__fI7lKDU-e4_ZTA7yZpj7Vu5cQ7jQbQE9h8aU5zg@gmail.com" ], @@ -18,43 +13,23 @@ }, { "id":"307ee26b-fe96-40a9-bc8a-9e49fba4de97", - "businessPhones":[ ], - "mail":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com", - "officeLocation":null, - "preferredLanguage":null, - "userPrincipalName":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com" + "mail":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com" }, { "id":"4ea7fc01-0264-4e84-b85e-9e49fba4de97", - "businessPhones":[ ], - "mail":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com", - "officeLocation":null, - "preferredLanguage":"en-US", - "userPrincipalName":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com" + "mail":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com" }, { "id":"219435cc-746e-48d6-8ccd-242345234f6e", - "businessPhones":[ ], - "mail":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com", - "officeLocation":null, - "preferredLanguage":"es-ES", - "userPrincipalName":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com" + "mail":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com" }, { "id":"f8f2864c-c353-4471-bd75-9e49fba4de97", - "businessPhones":[ ], - "mail":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com", - "officeLocation":null, - "preferredLanguage":"en-US", - "userPrincipalName":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com" + "mail":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com" }, { - "businessPhones":[ ], "mail":null, - "officeLocation":null, - "preferredLanguage":null, - "userPrincipalName":"t~hLkozOrxrM9tHy-V5lXCNwhujad46BtuFl2uP-J7Dwk@worklytics.onmicrosoft.com", "id":"232442306-9942-4750-a708-4a1e4fe8a879" } ] -} +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/user.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/user.json new file mode 100644 index 0000000000..031b4af1d0 --- /dev/null +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized/user.json @@ -0,0 +1,11 @@ +{ + "mail":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "id":"48d31887-5fad-4d73-a9f5-3c356e68a038", + "otherMails":[ + "t~9hOtJuGJwqk4-lnsJ2csmTnmD9R_Y28iXox85gjemWU@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "smtp:t~xEWytalm5eilwjtWlbLarIaLtc_2Uw2qisSK3j33RaQ@M365x214355.onmicrosoft.com" + ] +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Chats_messages_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Chats_messages_v1.0.json similarity index 82% rename from docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Chats_messages_v1.0.json rename to docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Chats_messages_v1.0.json index b256cacafd..f42f44f398 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Chats_messages_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Chats_messages_v1.0.json @@ -10,14 +10,10 @@ "lastModifiedDateTime":"2021-03-28T20:48:29.832Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":null, - "summary":null, "chatId":"p~bWr_bA0wnI4CDi2z8MuXG2vEmijbgJ9-MX1hsrnF20ik1FwGIGIQ_uMj2B_4LQV7U7F8XPs4Nx_URHgdx-pukZu2Hb6QzmB24IBvBInSdwA", "importance":"normal", "locale":"en-us", - "webUrl":null, "channelIdentity":null, - "policyViolation":null, "eventDetail":null, "from":{ "application":null, @@ -28,11 +24,14 @@ } }, "body":{ - "contentType":"text" + "contentType":"text", + "+content:textDigest":{ + "length":11, + "word_count":2 + } }, "mentions":[ ], - "reactions":[ ], - "messageHistory":[ ] + "reactions":[ ] }, { "id":"1615971548136", @@ -43,14 +42,10 @@ "lastModifiedDateTime":"2021-03-17T08:59:08.136Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":null, - "summary":null, "chatId":"p~bWr_bA0wnI4CDi2z8MuXG2vEmijbgJ9-MX1hsrnF20ik1FwGIGIQ_uMj2B_4LQV7U7F8XPs4Nx_URHgdx-pukZu2Hb6QzmB24IBvBInSdwA", "importance":"normal", "locale":"en-us", - "webUrl":null, "channelIdentity":null, - "policyViolation":null, "eventDetail":null, "from":{ "application":null, @@ -61,11 +56,14 @@ } }, "body":{ - "contentType":"html" + "contentType":"html", + "+content:textDigest":{ + "length":466, + "word_count":7 + } }, "mentions":[ ], - "reactions":[ ], - "messageHistory":[ ] + "reactions":[ ] }, { "id":"1615943825123", @@ -76,24 +74,22 @@ "lastModifiedDateTime":"2021-03-1706:47:05.123Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":null, - "summary":null, "chatId":"p~bWr_bA0wnI4CDi2z8MuXG2vEmijbgJ9-MX1hsrnF20ik1FwGIGIQ_uMj2B_4LQV7U7F8XPs4Nx_URHgdx-pukZu2Hb6QzmB24IBvBInSdwA", "importance":"normal", "locale":"en-us", - "webUrl":null, "channelIdentity":null, - "policyViolation":null, "from":null, "body":{ - "contentType":"html" + "contentType":"html", + "+content:textDigest":{ + "length":21, + "word_count":1 + } }, "mentions":[ ], "reactions":[ ], - "messageHistory":[ ], "eventDetail":{ "@odata.type":"#microsoft.graph.chatRenamedEventMessageDetail", - "chatId":"p~bWr_bA0wnI4CDi2z8MuXG2vEmijbgJ9-MX1hsrnF20ik1FwGIGIQ_uMj2B_4LQV7U7F8XPs4Nx_URHgdx-pukZu2Hb6QzmB24IBvBInSdwA", "initiator":{ "application":null, "device":null, diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Communications_callRecord_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Communications_callRecord_v1.0.json new file mode 100644 index 0000000000..7a9a391428 --- /dev/null +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Communications_callRecord_v1.0.json @@ -0,0 +1,87 @@ +{ + "version":1, + "type":"peerToPeer", + "modalities":[ + "audio" + ], + "lastModifiedDateTime":"2020-02-25T19:00:24.582757Z", + "startDateTime":"2020-02-25T18:52:21.2169889Z", + "endDateTime":"2020-02-25T18:52:46.7640013Z", + "id":"e523d2ed-2966-4b6b-925b-754a88034cc5", + "organizer":{ + "user":{ + "id":"t~_NMipkQ9Oebtrm7A33WQtT_wp1HCdXFRkhibMxTZGpU", + "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" + } + }, + "participants":[ + { + "user":{ + "id":"t~_NMipkQ9Oebtrm7A33WQtT_wp1HCdXFRkhibMxTZGpU", + "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" + } + }, + { + "user":{ + "id":"t~ejSHHUaRnhvrRPBjmJAxSudeydUkOaOBffHT-nIS1s0", + "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" + } + } + ], + "organizer_v2":{ + "id":"t~NYJFms1KAU42d-xBri4bCZ8b4D3HKAWFDNKwlnphYLc", + "identity":{ + "user":{ + "id":"t~_NMipkQ9Oebtrm7A33WQtT_wp1HCdXFRkhibMxTZGpU", + "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" + } + } + }, + "participants_v2":[ + { + "id":"t~NYJFms1KAU42d-xBri4bCZ8b4D3HKAWFDNKwlnphYLc", + "identity":{ + "user":{ + "id":"t~_NMipkQ9Oebtrm7A33WQtT_wp1HCdXFRkhibMxTZGpU", + "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" + } + } + }, + { + "id":"t~OF4uWV71CpZ5DtSbvpUG8VuCs8ak64q8Lr9RWRFLDvM", + "identity":{ + "user":{ + "id":"t~ejSHHUaRnhvrRPBjmJAxSudeydUkOaOBffHT-nIS1s0", + "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" + } + } + } + ], + "sessions":[ + { + "modalities":[ + "audio" + ], + "startDateTime":"2020-02-25T18:52:21.2169889Z", + "endDateTime":"2020-02-25T18:52:46.7640013Z", + "id":"e523d2ed-2966-4b6b-925b-754a88034cc5", + "isTest":false, + "caller":{ + "identity":{ + "user":{ + "id":"t~_NMipkQ9Oebtrm7A33WQtT_wp1HCdXFRkhibMxTZGpU", + "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" + } + } + }, + "callee":{ + "identity":{ + "user":{ + "id":"t~ejSHHUaRnhvrRPBjmJAxSudeydUkOaOBffHT-nIS1s0", + "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" + } + } + } + } + ] +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Communications_callRecords_getDirectRoutingCalls_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Communications_callRecords_getDirectRoutingCalls_v1.0.json similarity index 89% rename from docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Communications_callRecords_getDirectRoutingCalls_v1.0.json rename to docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Communications_callRecords_getDirectRoutingCalls_v1.0.json index e3b91db702..cf903def71 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Communications_callRecords_getDirectRoutingCalls_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Communications_callRecords_getDirectRoutingCalls_v1.0.json @@ -13,9 +13,6 @@ "successfulCall":true, "mediaPathLocation":"USWE", "signalingLocation":"EUNO", - "finalSipCode":0, - "callEndSubReason":540000, - "finalSipCodePhrase":"BYE", "trunkFullyQualifiedDomainName":"tll-audiocodes01.adatum.biz", "mediaBypassEnabled":false } diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Communications_callRecords_getPstnCalls_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Communications_callRecords_getPstnCalls_v1.0.json similarity index 100% rename from docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Communications_callRecords_getPstnCalls_v1.0.json rename to docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Communications_callRecords_getPstnCalls_v1.0.json diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Communications_callRecords_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Communications_callRecords_v1.0.json similarity index 89% rename from docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Communications_callRecords_v1.0.json rename to docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Communications_callRecords_v1.0.json index dc67e87de9..fb163fc03a 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Communications_callRecords_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Communications_callRecords_v1.0.json @@ -17,6 +17,7 @@ } }, "organizer_v2":{ + "id":"t~_NMipkQ9Oebtrm7A33WQtT_wp1HCdXFRkhibMxTZGpU", "identity":{ "user":{ "id":"t~_NMipkQ9Oebtrm7A33WQtT_wp1HCdXFRkhibMxTZGpU", @@ -42,10 +43,9 @@ } }, "organizer_v2":{ + "id":"t~6H69wr8oy_BY0VqG_KZNlLKl-4g86kOAK37vAuGrbUw", "identity":{ - "user":null, - "acsUser":null, - "spoolUser":null + "user":null } } } diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Communications_calls_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Communications_calls_v1.0.json new file mode 100644 index 0000000000..c166864fb2 --- /dev/null +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Communications_calls_v1.0.json @@ -0,0 +1,25 @@ +{ + "state":"established", + "direction":"outgoing", + "source":{ + "identity":{ + "application":{ + "id":"2891555a-92ff-42e6-80fa-6e1300c6b5c6" + } + }, + "region":null + }, + "targets":[ + { + "identity":{ + "user":{ + "id":"t~P41Oxrvl5S1iYa03X7oD75Xn-UzD1ma7OIa4rUs_ZoM" + } + } + } + ], + "myParticipantId":"499ff390-7a72-40e8-83a0-8fac6295ae7e", + "id":"2e1a0b00-2db4-4022-9570-243709c565ab", + "chatInfo":null, + "meetingInfo":null +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Teams_allChannels_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Teams_allChannels_v1.0.json similarity index 99% rename from docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Teams_allChannels_v1.0.json rename to docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Teams_allChannels_v1.0.json index 680602ce94..7f0d200160 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Teams_allChannels_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Teams_allChannels_v1.0.json @@ -13,4 +13,4 @@ "tenantId":"b3246f44-b4gb-5678-96c6-25b18fa2c910" } ] -} +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Teams_channels_messages_delta_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Teams_channels_messages_delta_v1.0.json similarity index 66% rename from docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Teams_channels_messages_delta_v1.0.json rename to docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Teams_channels_messages_delta_v1.0.json index 92c1aea0e0..2c3a30bc5c 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Teams_channels_messages_delta_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Teams_channels_messages_delta_v1.0.json @@ -2,7 +2,6 @@ "@odata.nextLink":"https://graph.microsoft.com/v1.0/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages/delta?$skiptoken=-FG3FPHv7HuyuazNLuy3eXlzQGbEjYLUsW9-pYkmXgn5KGsaOwrCoor2W23dGNNM1KtAX4AyvpFQNVsBgsEwUOX9lw8x9zDumgJy-C-UbjZLlZDQACyC9FyrVelZus9n.--rshdLwy_WBFJd8anPXJPbSUtUD7r3V4neB5tcrG58", "value":[ { - "@odata.type":"#microsoft.graph.chatMessage", "replyToId":null, "etag":"1606515483514", "messageType":"message", @@ -10,13 +9,9 @@ "lastModifiedDateTime":"2020-11-27T22:18:03.514Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":null, - "summary":null, "chatId":null, "importance":"normal", "locale":"en-us", - "webUrl":"https://teams.microsoft.com/l/message/19%3A4a95f7d8db4c4e7fae857bcebe0623e6%40thread.tacv2/1606515483514?groupId=fbe2bf47-16c8-47cf-b4a5-4b9b187c508b&tenantId=2432b57b-0abd-43db-aa7b-16eadd115d34&createdTime=1606515483514&parentMessageId=1606515483514", - "policyViolation":null, "eventDetail":null, "id":"1606515483514", "from":{ @@ -24,25 +19,26 @@ "device":null, "conversation":null, "user":{ - "@odata.type":"#microsoft.graph.teamworkUserIdentity", "id":"t~B9mIayvpLlXmJS0UFmhvp06dDj9WoxgJ9Dc7zS9Dc90", "userIdentityType":"aadUser", "tenantId":"e61ef81e-8bd8-476a-92e8-4a62f8426fca" } }, "body":{ - "contentType":"text" + "contentType":"text", + "+content:textDigest":{ + "length":4, + "word_count":1 + } }, "channelIdentity":{ "teamId":"fbe2bf47-16c8-47cf-b4a5-4b9b187c508b", "channelId":"19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2" }, "mentions":[ ], - "reactions":[ ], - "messageHistory":[ ] + "reactions":[ ] }, { - "@odata.type":"#microsoft.graph.chatMessage", "replyToId":null, "etag":"1606691795113", "messageType":"message", @@ -50,13 +46,9 @@ "lastModifiedDateTime":"2020-11-29T23:16:35.113Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":null, - "summary":null, "chatId":null, "importance":"normal", "locale":"en-us", - "webUrl":"https://teams.microsoft.com/l/message/19%3A4a95f7d8db4c4e7fae857bcebe0623e6%40thread.tacv2/1606691795113?groupId=fbe2bf47-16c8-47cf-b4a5-4b9b187c508b&tenantId=2432b57b-0abd-43db-aa7b-16eadd115d34&createdTime=1606691795113&parentMessageId=1606691795113", - "policyViolation":null, "eventDetail":null, "id":"1606691795113", "from":{ @@ -64,22 +56,24 @@ "device":null, "conversation":null, "user":{ - "@odata.type":"#microsoft.graph.teamworkUserIdentity", "id":"t~B9mIayvpLlXmJS0UFmhvp06dDj9WoxgJ9Dc7zS9Dc90", "userIdentityType":"aadUser", "tenantId":"e61ef81e-8bd8-476a-92e8-4a62f8426fca" } }, "body":{ - "contentType":"text" + "contentType":"text", + "+content:textDigest":{ + "length":39, + "word_count":5 + } }, "channelIdentity":{ "teamId":"fbe2bf47-16c8-47cf-b4a5-4b9b187c508b", "channelId":"19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2" }, "mentions":[ ], - "reactions":[ ], - "messageHistory":[ ] + "reactions":[ ] } ] } \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Teams_channels_messages_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Teams_channels_messages_v1.0.json similarity index 75% rename from docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Teams_channels_messages_v1.0.json rename to docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Teams_channels_messages_v1.0.json index 7fedbec5a5..08709e2255 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Teams_channels_messages_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Teams_channels_messages_v1.0.json @@ -10,13 +10,9 @@ "lastModifiedDateTime":"2021-03-28T21:11:12.395Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":null, - "summary":null, "chatId":null, "importance":"normal", "locale":"en-us", - "webUrl":"https://teams.microsoft.com/l/message/19%3A4a95f7d8db4c4e7fae857bcebe0623e6%40thread.tacv2/1616965872395?groupId=fbe2bf47-16c8-47cf-b4a5-4b9b187c508b&tenantId=2432b57b-0abd-43db-aa7b-16eadd115d34&createdTime=1616965872395&parentMessageId=1616965872395", - "policyViolation":null, "eventDetail":null, "from":{ "application":null, @@ -27,7 +23,11 @@ } }, "body":{ - "contentType":"html" + "contentType":"html", + "+content:textDigest":{ + "length":38, + "word_count":5 + } }, "channelIdentity":{ "teamId":"fbe2bf47-16c8-47cf-b4a5-4b9b187c508b", @@ -47,8 +47,7 @@ } } ], - "reactions":[ ], - "messageHistory":[ ] + "reactions":[ ] }, { "id":"1616963377068", @@ -59,13 +58,9 @@ "lastModifiedDateTime":"2021-03-28T20:29:37.068Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":"", - "summary":null, "chatId":null, "importance":"normal", "locale":"en-us", - "webUrl":"https://teams.microsoft.com/l/message/19%3A4a95f7d8db4c4e7fae857bcebe0623e6%40thread.tacv2/1616963377068?groupId=fbe2bf47-16c8-47cf-b4a5-4b9b187c508b&tenantId=2432b57b-0abd-43db-aa7b-16eadd115d34&createdTime=1616963377068&parentMessageId=1616963377068", - "policyViolation":null, "eventDetail":null, "from":{ "application":null, @@ -76,15 +71,18 @@ } }, "body":{ - "contentType":"html" + "contentType":"html", + "+content:textDigest":{ + "length":1040, + "word_count":13 + } }, "channelIdentity":{ "teamId":"fbe2bf47-16c8-47cf-b4a5-4b9b187c508b", "channelId":"19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2" }, "mentions":[ ], - "reactions":[ ], - "messageHistory":[ ] + "reactions":[ ] }, { "id":"1616883610266", @@ -95,16 +93,16 @@ "lastModifiedDateTime":"2021-03-28T03:50:10.266Z", "lastEditedDateTime":null, "deletedDateTime":null, - "subject":null, - "summary":null, "chatId":null, "importance":"normal", "locale":"en-us", - "webUrl":"https://teams.microsoft.com/l/message/19%3A4a95f7d8db4c4e7fae857bcebe0623e6%40thread.tacv2/1616883610266?groupId=fbe2bf47-16c8-47cf-b4a5-4b9b187c508b&tenantId=2432b57b-0abd-43db-aa7b-16eadd115d34&createdTime=1616883610266&parentMessageId=1616883610266", - "policyViolation":null, "from":null, "body":{ - "contentType":"html" + "contentType":"html", + "+content:textDigest":{ + "length":21, + "word_count":1 + } }, "channelIdentity":{ "teamId":"fbe2bf47-16c8-47cf-b4a5-4b9b187c508b", @@ -112,10 +110,8 @@ }, "mentions":[ ], "reactions":[ ], - "messageHistory":[ ], "eventDetail":{ "@odata.type":"#microsoft.graph.teamDescriptionUpdatedEventMessageDetail", - "teamId":"fbe2bf47-16c8-47cf-b4a5-4b9b187c508b", "initiator":{ "application":null, "device":null, diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Teams_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Teams_v1.0.json new file mode 100644 index 0000000000..8cd99c2f71 --- /dev/null +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Teams_v1.0.json @@ -0,0 +1,10 @@ +{ + "value":[ + { + "id":"b695c5a5-c5a5-b695-a5c5-95b6a5c595b6" + }, + { + "id":"b695c5a5-8934-b695-a5c5-95b6a5c595b6" + } + ] +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Users_chats_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Users_chats_v1.0.json similarity index 78% rename from docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Users_chats_v1.0.json rename to docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Users_chats_v1.0.json index d7d50a02e8..4a1f04f53c 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Users_chats_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Users_chats_v1.0.json @@ -3,6 +3,7 @@ "value":[ { "id":"p~dt97dl6xElPCQmE0FVBwWrlPjdjny4zHWbxF1enDVWT_9E0v02TshSdB7a7yFQw3kma9kiOIxsY8j08OisRw3Mko-pPKIu5F2r5SmxRJDr45zEGb_hg4AGkheF07fXHugkvvZXScGgHL9MlSjeZOdg", + "topic":"", "createdDateTime":"2020-12-08T23:53:05.801Z", "lastUpdatedDateTime":"2020-12-08T23:58:32.511Z", "chatType":"meeting", @@ -14,34 +15,19 @@ "lastMessagePreview":{ "id":"p~KeMVVe8SmJO8m1s-Qh72rR09aNOGMk8u_iFE5OnTL_6FlglHNUpnuA6Tt7WbgGhf", "createdDateTime":"2024-04-01T10:08:07.452Z", - "isDeleted":false, "messageType":"unknownFutureValue", "from":null, "body":{ - "contentType":"html" + "contentType":"html", + "content":"" }, "eventDetail":{ "@odata.type":"#microsoft.graph.membersAddedEventMessageDetail", - "visibleHistoryStartDateTime":"2024-04-01T10:08:06.302Z", - "members":[ - { - "id":"p~JDdzmC4v95Omi06Uc27e7piLn8bF6IPQYGrTbjfMCGDopvJMBmt6M7AImJblqjUy1NY6C4hiGYZA_VSyceEm10K_q9ISWhkoOc4Fkb6XCU4", - "displayName":null, - "userIdentityType":"aadUser", - "tenantId":"2ae41f0c-acca-40f1-9c63-49475ff38512" - }, - { - "id":"p~SIoJOpeSgYF7YUPQ28IWZexVuHyN9A80SJXrbfawKpDRcddGnKI4QDKyjQI9KtjJZDb8FZ27UE_toS68FyWz7Y22fnQYLP91SHJGVwQiN3E", - "displayName":null, - "userIdentityType":"aadUser", - "tenantId":"dcd219dd-bc68-4b9b-bf0b-4a33a796be35" - } - ], "initiator":{ "application":null, "device":null, "user":{ - "@odata.type":"#microsoft.graph.teamworkUserIdentity", + "id":"p~xgqyprd3J3FmtC81rkOKFgSc34g-oIAA2M3S9J1mXJH38VXCR30GVwjLkriorHSF_nL9Z51Y4fZABqo8iimkCRqqaMRZ2yDY8G1AnwUBlQE", "userIdentityType":"aadUser", "tenantId":"2ae41f0c-acca-40f1-9c63-49475ff38512" } @@ -51,6 +37,7 @@ }, { "id":"p~FPy0_JXj7Z9qpTC8Pgbnu7xIUrkZuZYB7IMq4JS9W_ssh5Zzf28nQGcKOXpYc8BpO--G0uhvHOca8V08ezg2-hz9SRFcCrnWPhIpJ0VoeDs", + "topic":"", "createdDateTime":"2020-12-03T19:41:07.054Z", "lastUpdatedDateTime":"2020-12-08T23:53:11.012Z", "chatType":"group", @@ -62,6 +49,7 @@ }, { "id":"p~WFhXGvZ2NeB62F77zoz0Vt6KDkZLT5qX81QsTFp-1rI6eB6IlrEMa_0t_ozFMZI36vBxkuzkXa2Y5FKDMP3HFwuWcRwDWL7X0kbg1b5ilreJledtOVO8XMB5RHCRsJmTk6G-Pc5j28hDJ7sX-uSZXn653SkDrz5k6_NvamVRoso", + "topic":null, "createdDateTime":"2020-12-04T23:10:28.51Z", "lastUpdatedDateTime":"2020-12-04T23:10:36.925Z", "chatType":"oneOnOne", diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Users_onlineMeetings_attendanceReport_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Users_onlineMeetings_attendanceReport_v1.0.json similarity index 100% rename from docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Users_onlineMeetings_attendanceReport_v1.0.json rename to docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Users_onlineMeetings_attendanceReport_v1.0.json diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Users_onlineMeetings_attendanceReports_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Users_onlineMeetings_attendanceReports_v1.0.json similarity index 100% rename from docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Users_onlineMeetings_attendanceReports_v1.0.json rename to docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Users_onlineMeetings_attendanceReports_v1.0.json diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Users_onlineMeetings_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Users_onlineMeetings_v1.0.json similarity index 69% rename from docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Users_onlineMeetings_v1.0.json rename to docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Users_onlineMeetings_v1.0.json index 2f3e4f7a72..1310f32908 100644 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Users_onlineMeetings_v1.0.json +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/Users_onlineMeetings_v1.0.json @@ -1,11 +1,4 @@ { - "autoAdmittedUsers":"everyone", - "audioConferencing":{ - "tollNumber":"5552478", - "tollFreeNumber":"5550588", - "ConferenceId":"9999999", - "dialinUrl":"https://dialin.teams.microsoft.com/6787A136-B9B8-4D39-846C-C0F1FF937F10?id=xxxxxxx" - }, "chatInfo":{ "threadId":"19:cbee7c1c860e465cebf7bee0d@thread.skype", "messageId":"153367081" @@ -34,13 +27,6 @@ }, "startDateTime":"2018-05-30T00:30:00Z", "videoTeleconferenceId":"123456789", - "lobbyBypassSettings":{ - "scope":"everyone", - "isDialInBypassEnabled":true - }, - "joinMeetingIdSettings":{ - "joinMeetingId":"1234567890" - }, - "isEntryExitAnnounced":true, + "lobbyBypassSettings":{ }, "allowedPresenters":"everyone" } \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/user.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/user.json new file mode 100644 index 0000000000..fde9992ae6 --- /dev/null +++ b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-app-ids/user.json @@ -0,0 +1,11 @@ +{ + "mail":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "id":"p~SIoJOpeSgYF7YUPQ28IWZexVuHyN9A80SJXrbfawKpDRcddGnKI4QDKyjQI9KtjJZDb8FZ27UE_toS68FyWz7Y22fnQYLP91SHJGVwQiN3E", + "otherMails":[ + "t~9hOtJuGJwqk4-lnsJ2csmTnmD9R_Y28iXox85gjemWU@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "smtp:t~xEWytalm5eilwjtWlbLarIaLtc_2Uw2qisSK3j33RaQ@M365x214355.onmicrosoft.com" + ] +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Communications_callRecord_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Communications_callRecord_v1.0.json deleted file mode 100644 index af628a05af..0000000000 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Communications_callRecord_v1.0.json +++ /dev/null @@ -1,216 +0,0 @@ -{ - "version":1, - "type":"peerToPeer", - "modalities":[ - "audio" - ], - "lastModifiedDateTime":"2020-02-25T19:00:24.582757Z", - "startDateTime":"2020-02-25T18:52:21.2169889Z", - "endDateTime":"2020-02-25T18:52:46.7640013Z", - "id":"e523d2ed-2966-4b6b-925b-754a88034cc5", - "organizer":{ - "user":{ - "id":"t~_NMipkQ9Oebtrm7A33WQtT_wp1HCdXFRkhibMxTZGpU", - "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" - } - }, - "participants":[ - { - "user":{ - "id":"t~_NMipkQ9Oebtrm7A33WQtT_wp1HCdXFRkhibMxTZGpU", - "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" - } - }, - { - "user":{ - "id":"t~ejSHHUaRnhvrRPBjmJAxSudeydUkOaOBffHT-nIS1s0", - "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" - } - } - ], - "sessions":[ - { - "modalities":[ - "audio" - ], - "startDateTime":"2020-02-25T18:52:21.2169889Z", - "endDateTime":"2020-02-25T18:52:46.7640013Z", - "id":"e523d2ed-2966-4b6b-925b-754a88034cc5", - "isTest":false, - "caller":{ - "cpuName":"Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz", - "cpuCoresCount":2, - "cpuProcessorSpeedInMhz":2594, - "userAgent":{ - "headerValue":"RTCC/7.0.0.0 UCWA/7.0.0.0 AndroidLync/6.25.0.27 (SM-G930U Android 8.0.0)", - "platform":"android", - "productFamily":"skypeForBusiness" - }, - "identity":{ - "user":{ - "id":"t~_NMipkQ9Oebtrm7A33WQtT_wp1HCdXFRkhibMxTZGpU", - "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" - } - } - }, - "callee":{ - "cpuName":"Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz", - "cpuCoresCount":8, - "cpuProcessorSpeedInMhz":2295, - "userAgent":{ - "headerValue":"UCCAPI/16.0.12527.20122 OC/16.0.12527.20194 (Skype for Business)", - "platform":"windows", - "productFamily":"skypeForBusiness" - }, - "identity":{ - "user":{ - "id":"t~ejSHHUaRnhvrRPBjmJAxSudeydUkOaOBffHT-nIS1s0", - "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" - } - }, - "feedback":{ - "rating":"poor", - "tokens":{ - "NoSound":false, - "OtherNoSound":false, - "Echo":false, - "Noisy":true, - "LowVolume":false, - "Stopped":false, - "DistortedSound":false, - "Interruptions":false - } - } - }, - "segments":[ - { - "startDateTime":"2020-02-25T18:52:21.2169889Z", - "endDateTime":"2020-02-25T18:52:46.7640013Z", - "id":"e523d2ed-2966-4b6b-925b-754a88034cc5", - "caller":{ - "cpuName":"Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz", - "cpuCoresCount":8, - "cpuProcessorSpeedInMhz":2295, - "userAgent":{ - "headerValue":"RTCC/7.0.0.0 UCWA/7.0.0.0 AndroidLync/6.25.0.27 (SM-G930U Android 8.0.0)", - "platform":"android", - "productFamily":"skypeForBusiness" - }, - "identity":{ - "user":{ - "id":"t~_NMipkQ9Oebtrm7A33WQtT_wp1HCdXFRkhibMxTZGpU", - "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" - } - } - }, - "callee":{ - "cpuName":"Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz", - "cpuCoresCount":8, - "cpuProcessorSpeedInMhz":2295, - "userAgent":{ - "headerValue":"UCCAPI/16.0.12527.20122 OC/16.0.12527.20194 (Skype for Business)", - "platform":"windows", - "productFamily":"skypeForBusiness" - }, - "identity":{ - "user":{ - "id":"t~ejSHHUaRnhvrRPBjmJAxSudeydUkOaOBffHT-nIS1s0", - "tenantId":"dc368399-474c-4d40-900c-6265431fd81f" - } - } - }, - "media":[ - { - "label":"main-audio", - "callerNetwork":{ - "linkSpeed":54000000, - "connectionType":"wifi", - "port":27288, - "relayPort":53889, - "dnsSuffix":null, - "sentQualityEventRatio":0, - "receivedQualityEventRatio":0.27, - "delayEventRatio":0, - "bandwidthLowEventRatio":0 - }, - "calleeNetwork":{ - "linkSpeed":4294967295, - "connectionType":"wired", - "port":50011, - "relayPort":52810, - "dnsSuffix":null, - "sentQualityEventRatio":0.31, - "receivedQualityEventRatio":0, - "delayEventRatio":0, - "bandwidthLowEventRatio":0 - }, - "callerDevice":{ - "receivedSignalLevel":-10, - "receivedNoiseLevel":-68, - "initialSignalLevelRootMeanSquare":60.25816, - "renderZeroVolumeEventRatio":1, - "renderMuteEventRatio":1, - "micGlitchRate":23, - "speakerGlitchRate":3830 - }, - "calleeDevice":{ - "captureDeviceDriver":"Microsoft: 5.0.8638.1100", - "renderDeviceDriver":"Microsoft: 5.0.8638.1100", - "receivedSignalLevel":-14, - "receivedNoiseLevel":-86, - "initialSignalLevelRootMeanSquare":146.7885, - "micGlitchRate":143, - "speakerGlitchRate":182 - }, - "streams":[ - { - "streamId":"1504545584", - "streamDirection":"callerToCallee", - "averageAudioDegradation":null, - "averageJitter":"PT0.016S", - "maxJitter":"PT0.021S", - "averagePacketLossRate":0, - "maxPacketLossRate":0, - "averageRatioOfConcealedSamples":null, - "maxRatioOfConcealedSamples":null, - "averageRoundTripTime":"PT0.061S", - "maxRoundTripTime":"PT0.079S", - "packetUtilization":67, - "averageBandwidthEstimate":9965083, - "wasMediaBypassed":false, - "averageAudioNetworkJitter":"PT0.043S", - "maxAudioNetworkJitter":"PT0.046S", - "rmsFreezeDuration":null, - "averageFreezeDuration":null, - "isAudioForwardErrorCorrectionUsed":false - }, - { - "streamId":"1785122252", - "streamDirection":"calleeToCaller", - "averageAudioDegradation":1.160898, - "averageJitter":"PT0.007S", - "maxJitter":"PT0.012S", - "averagePacketLossRate":0.01381693, - "maxPacketLossRate":0.03738318, - "averageRatioOfConcealedSamples":0.06233422, - "maxRatioOfConcealedSamples":0.07192807, - "averageRoundTripTime":"PT0.064S", - "maxRoundTripTime":"PT0.106S", - "packetUtilization":709, - "averageBandwidthEstimate":15644878, - "wasMediaBypassed":false, - "averageAudioNetworkJitter":"PT0.266S", - "maxAudioNetworkJitter":"PT0.474S", - "rmsFreezeDuration":null, - "averageFreezeDuration":null, - "isAudioForwardErrorCorrectionUsed":null - } - ] - } - ] - } - ] - } - ], - "sessions@odata.nextLink":"https://graph.microsoft.com/v1.0/$metadata#communications/callRecords('e523d2ed-2966-4b6b-925b-754a88034cc5')/sessions?$expand=segments&$skiptoken=abc" -} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Communications_calls_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Communications_calls_v1.0.json deleted file mode 100644 index bcfb5473ae..0000000000 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Communications_calls_v1.0.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "state":"established", - "direction":"outgoing", - "callbackUri":"https://bot.contoso.com/callback", - "source":{ - "identity":{ - "application":{ - "id":"2891555a-92ff-42e6-80fa-6e1300c6b5c6" - } - }, - "region":null, - "languageId":null - }, - "targets":[ - { - "identity":{ - "user":{ - "id":"t~P41Oxrvl5S1iYa03X7oD75Xn-UzD1ma7OIa4rUs_ZoM" - } - } - } - ], - "requestedModalities":[ - "audio" - ], - "mediaConfig":{ - "preFetchMedia":[ - { - "uri":"https://cdn.contoso.com/beep.wav", - "resourceId":"f8971b04-b53e-418c-9222-c82ce681a582" - }, - { - "uri":"https://cdn.contoso.com/cool.wav", - "resourceId":"86dc814b-c172-4428-9112-60f8ecae1edb" - } - ] - }, - "myParticipantId":"499ff390-7a72-40e8-83a0-8fac6295ae7e", - "id":"2e1a0b00-2db4-4022-9570-243709c565ab", - "subject":null, - "ringingTimeoutInSeconds":null, - "resultInfo":null, - "answeredBy":null, - "chatInfo":null, - "meetingInfo":null, - "transcription":null, - "toneInfo":null -} \ No newline at end of file diff --git a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Teams_v1.0.json b/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Teams_v1.0.json deleted file mode 100644 index 8a8c863fe8..0000000000 --- a/docs/sources/microsoft-365/msft-teams/example-api-responses/sanitized_no-userIds/Teams_v1.0.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "value":[ - { - "id":"b695c5a5-c5a5-b695-a5c5-95b6a5c595b6", - "tenantId":"172b0cce-e65d-7hd4-9a49-91d9f2e8493a" - }, - { - "id":"b695c5a5-8934-b695-a5c5-95b6a5c595b6", - "tenantId":"172b0cce-8961-7hd4-9a49-91d9f2e8493a" - } - ] -} diff --git a/docs/sources/microsoft-365/msft-teams/msft-teams.yaml b/docs/sources/microsoft-365/msft-teams/msft-teams.yaml index d9842d4c64..5d1b826a2b 100644 --- a/docs/sources/microsoft-365/msft-teams/msft-teams.yaml +++ b/docs/sources/microsoft-365/msft-teams/msft-teams.yaml @@ -1,12 +1,21 @@ --- endpoints: - - pathTemplate: "/v1.0/teams" + - pathTemplate: "/v1.0/chats/{chatId}/messages" allowedQueryParams: - "$select" - "$top" - "$skiptoken" - "$filter" + - "$orderby" - "$count" + - "$expand" + - "$format" + - "$search" + - "$skip" + augments: + - ! + jsonPaths: + - "$..body.content" transforms: - ! jsonPaths: @@ -14,122 +23,161 @@ endpoints: encoding: "URL_SAFE_TOKEN" - ! jsonPaths: - - "$..displayName" - - "$..description" - - pathTemplate: "/v1.0/teams/{teamId}/allChannels" + - "$..body.content" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/ChatMessage" + - pathTemplate: "/v1.0/communications/callRecords/getDirectRoutingCalls(fromDateTime={startDate},toDateTime={endDate})" allowedQueryParams: - - "$select" - - "$filter" + - "$skip" transforms: - ! jsonPaths: - "$..emailAddress" encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..displayName" - - "$..description" - - pathTemplate: "/v1.0/users/{userId}/chats" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/DirectRoutingCall" + - pathTemplate: "/v1.0/communications/callRecords/getPstnCalls(fromDateTime={startDate},toDateTime={endDate})" allowedQueryParams: - - "$select" - - "$top" - - "$skiptoken" - - "$filter" - - "$orderby" - - "$expand" - allowedRequestHeaders: - - "ConsistencyLevel" + - "$skip" transforms: - ! jsonPaths: - "$..emailAddress" encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..displayName" - - "$..description" - - ! - jsonPaths: - - "$..topic" - - "$..['lastMessagePreview@odata.context']" - - ! + - ! jsonPaths: - - "$..user.displayName" - - "$..body.content" - - "$..attachments" - - "$..mentions[*].mentionText" - - "$..eventDetail.teamDescription" - - "$..eventDetail.chatDisplayName" - - pathTemplate: "/v1.0/teams/{teamId}/channels/{channelId}/messages" + - "$..callId" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/PSTNCall" + - pathTemplate: "/v1.0/communications/calls/{callId}" allowedQueryParams: - "$select" - "$top" - - "$skiptoken" - "$expand" transforms: - ! jsonPaths: - "$..emailAddress" encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..user.displayName" - - "$..body.content" - - "$..attachments" - - "$..mentions[*].mentionText" - - "$..eventDetail.teamDescription" - - "$..eventDetail.chatDisplayName" - - pathTemplate: "/v1.0/teams/{teamId}/channels/{channelId}/messages/delta" + responseSchema: + type: "object" + properties: + callChainId: + type: "string" + chatInfo: + $ref: "#/definitions/ChatInfo" + direction: + type: "string" + id: + type: "string" + mediaState: + type: "string" + meetingInfo: + $ref: "#/definitions/MeetingInfo" + myParticipantId: + type: "string" + requestModalities: + type: "array" + items: + type: "string" + source: + $ref: "#/definitions/ParticipantInfo" + state: + type: "string" + targets: + type: "array" + items: + $ref: "#/definitions/ParticipantInfo" + - pathTemplate: "/v1.0/teams" allowedQueryParams: - "$select" - "$top" - "$skiptoken" - - "$expand" - - "$deltatoken" - "$filter" + - "$count" transforms: - ! jsonPaths: - "$..emailAddress" encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..user.displayName" - - "$..body.content" - - "$..attachments" - - "$..mentions[*].mentionText" - - "$..eventDetail.teamDescription" - - "$..eventDetail.chatDisplayName" - - pathTemplate: "/v1.0/chats/{chatId}/messages" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/Team" + - pathTemplate: "/v1.0/teams/{teamId}/allChannels" allowedQueryParams: - "$select" - - "$top" - - "$skiptoken" - "$filter" - - "$orderby" - - "$count" - - "$expand" - - "$format" - - "$search" - - "$skip" transforms: - ! jsonPaths: - "$..emailAddress" encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..user.displayName" - - "$..body.content" - - "$..attachments" - - "$..mentions[*].mentionText" - - "$..eventDetail.teamDescription" - - "$..eventDetail.chatDisplayName" - - pathTemplate: "/v1.0/communications/calls/{callId}" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/Channel" + - pathTemplate: "/v1.0/teams/{teamId}/channels/{channelId}/messages" allowedQueryParams: - "$select" - "$top" + - "$skiptoken" - "$expand" + augments: + - ! + jsonPaths: + - "$..body.content" transforms: - ! jsonPaths: @@ -137,37 +185,32 @@ endpoints: encoding: "URL_SAFE_TOKEN" - ! jsonPaths: - - "$..displayName" - - pathRegex: "^/v1.0/communications/callRecords(/(?[({]?[a-fA-F0-9]{8}[-]?([a-fA-F0-9]{4}[-]?){3}[a-fA-F0-9]{12}[})]?))?(?[a-zA-z0-9\\\ - s\\$\\=\\?\\(\\)]*)" + - "$..body.content" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/ChatMessage" + - pathTemplate: "/v1.0/teams/{teamId}/channels/{channelId}/messages/delta" allowedQueryParams: - "$select" + - "$top" + - "$skiptoken" - "$expand" + - "$deltatoken" - "$filter" - transforms: - - ! + augments: + - ! jsonPaths: - - "$..emailAddress" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..user.displayName" - - "$..reflexiveIPAddress" - - "$..relayIPAddress" - - "$..ipAddress" - - "$..subnet" - - "$..macAddress" - - "$..caller.name" - - "$..callee.name" - - "$..captureDeviceName" - - "$..renderDeviceName" - - "$..organizer_v2.id" - - "$..participants_v2[*].id" - - "$..phone" - - "$..['organizer_v2@odata.context']" - - pathTemplate: "/v1.0/communications/callRecords/getDirectRoutingCalls(fromDateTime={startDate},toDateTime={endDate})" - allowedQueryParams: - - "$skip" + - "$..body.content" transforms: - ! jsonPaths: @@ -175,27 +218,105 @@ endpoints: encoding: "URL_SAFE_TOKEN" - ! jsonPaths: - - "$..value[*].userPrincipalName" - - "$..value[*].userDisplayName" - - "$..value[*].callerNumber" - - "$..value[*].calleeNumber" - - pathTemplate: "/v1.0/communications/callRecords/getPstnCalls(fromDateTime={startDate},toDateTime={endDate})" + - "$..body.content" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/ChatMessage" + - pathTemplate: "/v1.0/users/{userId}/chats" allowedQueryParams: - - "$skip" + - "$select" + - "$top" + - "$skiptoken" + - "$filter" + - "$orderby" + - "$expand" + allowedRequestHeaders: + - "ConsistencyLevel" transforms: - ! jsonPaths: - "$..emailAddress" encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..callId" - - ! + - ! jsonPaths: - - "$..value[*].userPrincipalName" - - "$..value[*].userDisplayName" - - "$..value[*].callerNumber" - - "$..value[*].calleeNumber" + - "$..topic" + allowedPhrases: + - "Focus Time" + - "Focus" + - "No Meetings" + - "No Meeting" + - "no mtg" + - "Prep" + - "OOO" + - "Out of Office" + - "Out of the Office" + - "call" + - "brainstorm" + - "brainstorming" + - "brain storm" + - "check in" + - "check-in" + - "checkin" + - "coffee" + - "food" + - "happy hour" + - "lunch" + - "office hours" + - "onsite" + - "on-site" + - "social" + - "stand up" + - "stand-up" + - "standup" + - "team building" + - "teambuilding" + - "daily" + - "bi-weekly" + - "biweekly" + - "weekly" + - "monthly" + - "quarterly" + - "1:1" + - "1-on-1" + - "one-on-one" + - "all-hands" + - "all hands" + - "allhands" + - "team meeting" + - "decision making" + - "decision" + - "hand off" + - "hand-off" + - "handoff" + - "handover" + - "information sharing" + - "problem solving" + - "retro" + - "review" + - "sprint" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/Chat" - pathTemplate: "/v1.0/users/{userId}/onlineMeetings" allowedQueryParams: - "$select" @@ -209,21 +330,50 @@ endpoints: - "$search" - "$skip" transforms: - - ! - jsonPaths: - - "$..['@odata.context']" - ! jsonPaths: - "$..emailAddress" encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..displayName" - - "$..subject" - - "$..joinInformation" - - "$..joinMeetingIdSettings.isPasscodeRequired" - - "$..joinMeetingIdSettings.passcode" - - "$..upn" + responseSchema: + type: "object" + properties: + allowAttendeeToEnableCamera: + type: "boolean" + allowAttendeeToEnableMic: + type: "boolean" + allowMeetingChat: + type: "string" + allowParticipantsToChangeName: + type: "boolean" + allowTeamworkReactions: + type: "boolean" + allowedPresenters: + type: "string" + chatInfo: + $ref: "#/definitions/ChatInfo" + creationDateTime: + type: "string" + format: "date-time" + endDateTime: + type: "string" + format: "date-time" + id: + type: "string" + joinWebUrl: + type: "string" + lobbyBypassSettings: + $ref: "#/definitions/LobbyBypassSettings" + participants: + $ref: "#/definitions/MeetingParticipant" + shareMeetingChatHistoryDefault: + type: "string" + startDateTime: + type: "string" + format: "date-time" + videoTeleconferenceId: + type: "string" + watermarkProtection: + $ref: "#/definitions/WatermarkProtection" - pathTemplate: "/v1.0/users/{userId}/onlineMeetings/{meetingId}/attendanceReports" allowedQueryParams: - "$select" @@ -237,21 +387,23 @@ endpoints: - "$search" - "$skip" transforms: - - ! - jsonPaths: - - "$..['@odata.context']" - ! jsonPaths: - "$..emailAddress" encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..displayName" - - "$..subject" - - "$..joinInformation" - - "$..joinMeetingIdSettings.isPasscodeRequired" - - "$..joinMeetingIdSettings.passcode" - - "$..upn" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/MeetingAttendanceReport" - pathTemplate: "/v1.0/users/{userId}/onlineMeetings/{meetingId}/attendanceReports/{reportId}" allowedQueryParams: - "$select" @@ -265,22 +417,102 @@ endpoints: - "$search" - "$skip" transforms: - - ! + - ! jsonPaths: - - "$..['@odata.context']" + - "$..emailAddress" + encoding: "URL_SAFE_TOKEN" + responseSchema: + type: "object" + properties: + attendanceRecords: + type: "array" + items: + $ref: "#/definitions/AttendanceReport" + id: + type: "string" + meetingEndDateTime: + type: "string" + format: "date-time" + meetingStartDateTime: + type: "string" + format: "date-time" + totalParticipantCount: + type: "integer" + - pathRegex: "^/v1.0/communications/callRecords(\\?.*)?$" + allowedQueryParams: + - "$select" + - "$expand" + - "$filter" + transforms: - ! jsonPaths: - "$..emailAddress" encoding: "URL_SAFE_TOKEN" - - ! + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/CallRecord" + - pathRegex: "^/v1.0/communications/callRecords/[({]?[a-fA-F0-9]{8}[-]?([a-fA-F0-9]{4}[-]?){3}[a-fA-F0-9]{12}[})]?(\\\ + ?.*)?$" + allowedQueryParams: + - "$select" + - "$expand" + - "$filter" + transforms: + - ! jsonPaths: - - "$..displayName" - - "$..subject" - - "$..joinInformation" - - "$..joinMeetingIdSettings.isPasscodeRequired" - - "$..joinMeetingIdSettings.passcode" - - "$..upn" - - pathRegex: "^/v1.0/users/?[^/]*" + - "$..emailAddress" + encoding: "URL_SAFE_TOKEN" + responseSchema: + type: "object" + properties: + endDateTime: + type: "string" + format: "date-time" + id: + type: "string" + joinWebUrl: + type: "string" + lastModifiedDateTime: + type: "string" + format: "date-time" + modalities: + type: "array" + items: + type: "string" + organizer: + $ref: "#/definitions/IdentitySet" + organizer_v2: + $ref: "#/definitions/Organizer" + participants: + type: "array" + items: + $ref: "#/definitions/IdentitySet" + participants_v2: + type: "array" + items: + $ref: "#/definitions/Participant" + sessions: + type: "array" + items: + $ref: "#/definitions/Session" + startDateTime: + type: "string" + format: "date-time" + type: + type: "string" + version: + type: "integer" + - pathRegex: "^/v1.0/users/?(\\?.*)?$" allowedQueryParams: - "$top" - "$select" @@ -291,28 +523,42 @@ endpoints: allowedRequestHeaders: - "ConsistencyLevel" transforms: + - ! + jsonPaths: + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" - ! jsonPaths: - "$..proxyAddresses[*]" regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphUser" + - pathRegex: "^/v1.0/users/[^/?]+(\\?.*)?$" + allowedQueryParams: + - "$select" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: - ! jsonPaths: - "$..employeeId" @@ -326,3 +572,1068 @@ endpoints: - "$..onPremisesImmutableId" - "$..identities[*].issuerAssignedId" encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" +definitions: + Added: + type: "object" + properties: + '@odata.type': + type: "string" + channelId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + Archived: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamId: + type: "string" + AttendanceInterval: + type: "object" + properties: + durationInSeconds: + type: "integer" + joinDateTime: + type: "string" + format: "date-time" + leaveDateTime: + type: "string" + format: "date-time" + AttendanceReport: + type: "object" + properties: + attendanceIntervals: + type: "array" + items: + $ref: "#/definitions/AttendanceInterval" + emailAddress: + type: "string" + identity: + $ref: "#/definitions/Identity" + role: + type: "string" + totalAttendanceInSeconds: + type: "integer" + AutomaticRepliesSettings: + type: "object" + properties: + externalAudience: + type: "string" + scheduledEndDateTime: + $ref: "#/definitions/DateTimeTimeZone" + scheduledStartDateTime: + $ref: "#/definitions/DateTimeTimeZone" + status: + type: "string" + CallEnded: + type: "object" + properties: + '@odata.type': + type: "string" + callDuration: + type: "string" + callEventType: + type: "string" + callId: + type: "string" + callParticipants: + type: "array" + items: + $ref: "#/definitions/CallParticipantInfo" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + CallParticipantInfo: + type: "object" + properties: + participant: + $ref: "#/definitions/IdentitySet" + CallRecord: + type: "object" + properties: + endDateTime: + type: "string" + format: "date-time" + id: + type: "string" + joinWebUrl: + type: "string" + lastModifiedDateTime: + type: "string" + format: "date-time" + modalities: + type: "array" + items: + type: "string" + organizer: + $ref: "#/definitions/IdentitySet" + organizer_v2: + $ref: "#/definitions/Organizer" + participants: + type: "array" + items: + $ref: "#/definitions/IdentitySet" + participants_v2: + type: "array" + items: + $ref: "#/definitions/Participant" + sessions: + type: "array" + items: + $ref: "#/definitions/Session" + startDateTime: + type: "string" + format: "date-time" + type: + type: "string" + version: + type: "integer" + CallRecording: + type: "object" + properties: + '@odata.type': + type: "string" + callId: + type: "string" + callRecordingDuration: + type: "string" + callRecordingStatus: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + meetingOrganizer: + $ref: "#/definitions/IdentitySet" + CallStarted: + type: "object" + properties: + '@odata.type': + type: "string" + callEventType: + type: "string" + callId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + CallTranscript: + type: "object" + properties: + '@odata.type': + type: "string" + callId: + type: "string" + callTranscriptICalUid: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + meetingOrganizer: + $ref: "#/definitions/IdentitySet" + CallerInfo: + type: "object" + properties: + identity: + $ref: "#/definitions/IdentitySet" + Channel: + type: "object" + properties: + archived: + type: "boolean" + createdDateTime: + type: "string" + format: "date-time" + id: + type: "string" + isFavoriteByDefault: + type: "boolean" + membershipType: + type: "string" + sourceId: + type: "string" + summary: + $ref: "#/definitions/ChannelSummary" + teamId: + type: "string" + tenantId: + type: "string" + webUrl: + type: "string" + workItemId: + type: "string" + ChannelIdentity: + type: "object" + properties: + channelId: + type: "string" + teamId: + type: "string" + ChannelSummary: + type: "object" + properties: + guestsCount: + type: "integer" + hasMembersFromOtherTenants: + type: "boolean" + membersCount: + type: "integer" + ownersCount: + type: "integer" + Chat: + type: "object" + properties: + chatType: + type: "string" + chatViewpoint: + $ref: "#/definitions/ChatViewpoint" + createdDateTime: + type: "string" + format: "date-time" + id: + type: "string" + lastMessagePreview: + $ref: "#/definitions/ChatMessage" + lastUpdatedDateTime: + type: "string" + format: "date-time" + onlineMeetingInfo: + $ref: "#/definitions/TeamworkOnlineMeetingInfo" + sourceId: + type: "string" + tenantId: + type: "string" + topic: + type: "string" + webUrl: + type: "string" + ChatInfo: + type: "object" + properties: + messageId: + type: "string" + replyChainMessageId: + type: "string" + threadId: + type: "string" + ChatMessage: + type: "object" + properties: + attachmentList: + type: "array" + items: + $ref: "#/definitions/ChatMessageAttachment" + body: + $ref: "#/definitions/MessageBody" + channelIdentity: + $ref: "#/definitions/ChannelIdentity" + chatId: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + deletedDateTime: + type: "string" + format: "date-time" + etag: + type: "string" + eventDetail: + anyOf: + - $ref: "#/definitions/CallEnded" + - $ref: "#/definitions/CallRecording" + - $ref: "#/definitions/CallStarted" + - $ref: "#/definitions/CallTranscript" + - $ref: "#/definitions/Added" + - $ref: "#/definitions/Deleted" + - $ref: "#/definitions/DescriptionUpdated" + - $ref: "#/definitions/Renamed" + - $ref: "#/definitions/SetAsFavoriteByDefault" + - $ref: "#/definitions/UnsetAsFavoriteByDefault" + - $ref: "#/definitions/ChatRename" + - $ref: "#/definitions/ConversationMemberRoleUpdated" + - $ref: "#/definitions/MeetingPolicyUpdated" + - $ref: "#/definitions/MembersAdded" + - $ref: "#/definitions/Deleted_1" + - $ref: "#/definitions/Joined" + - $ref: "#/definitions/Left" + - $ref: "#/definitions/Pinned" + - $ref: "#/definitions/Unpinned" + - $ref: "#/definitions/TabUpdated" + - $ref: "#/definitions/Archived" + - $ref: "#/definitions/Created" + - $ref: "#/definitions/DescriptionUpdated_1" + - $ref: "#/definitions/JoiningDisabled" + - $ref: "#/definitions/JoiningEnabled" + - $ref: "#/definitions/Renamed_1" + - $ref: "#/definitions/Unarchived" + - $ref: "#/definitions/Installed" + - $ref: "#/definitions/Removed" + - $ref: "#/definitions/Upgraded" + from: + $ref: "#/definitions/IdentitySet" + id: + type: "string" + importance: + type: "string" + lastEditedDateTime: + type: "string" + format: "date-time" + lastModifiedDateTime: + type: "string" + format: "date-time" + locale: + type: "string" + mentions: + type: "array" + items: + $ref: "#/definitions/ChatMessageMention" + messageType: + type: "string" + nextVersion: + type: "string" + reactions: + type: "array" + items: + $ref: "#/definitions/ChatMessageReaction" + replies: + type: "array" + items: + $ref: "#/definitions/ChatMessage" + replyToId: + type: "string" + ChatMessageAttachment: + type: "object" + properties: + content: + type: "string" + contentType: + type: "string" + contentUrl: + type: "string" + id: + type: "string" + name: + type: "string" + thumbnailUrl: + type: "string" + ChatMessageMention: + type: "object" + properties: + id: + type: "integer" + mentioned: + $ref: "#/definitions/IdentitySet" + ChatMessageReaction: + type: "object" + properties: + createdDateTime: + type: "string" + format: "date-time" + reactionType: + type: "string" + user: + $ref: "#/definitions/IdentitySet" + ChatRename: + type: "object" + properties: + '@odata.type': + type: "string" + chatId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + ChatViewpoint: + type: "object" + properties: + isHidden: + type: "boolean" + lastMessageReadDateTime: + type: "string" + format: "date-time" + ConversationMemberRoleUpdated: + type: "object" + properties: + '@odata.type': + type: "string" + conversationMemberRoles: + type: "array" + items: + type: "string" + conversationMemberUser: + $ref: "#/definitions/TeamWorkUserIdentity" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + Created: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamId: + type: "string" + CustomTimeZone: + type: "object" + properties: + '@odata.type': + type: "string" + bias: + type: "integer" + daylightOffset: + $ref: "#/definitions/Offset" + name: + type: "string" + standardOffset: + $ref: "#/definitions/Offset" + DateTimeTimeZone: + type: "object" + properties: + dateTime: + type: "string" + format: "date-time" + timeZone: + type: "string" + timeZoneIANA: + type: "string" + Deleted: + type: "object" + properties: + '@odata.type': + type: "string" + channelId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + Deleted_1: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + members: + type: "array" + items: + $ref: "#/definitions/TeamWorkUserIdentity" + DescriptionUpdated: + type: "object" + properties: + '@odata.type': + type: "string" + channelId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + DescriptionUpdated_1: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamId: + type: "string" + DirectRoutingCall: + type: "object" + properties: + callType: + type: "string" + correlationId: + type: "string" + duration: + type: "integer" + endDateTime: + type: "string" + format: "date-time" + failureDateTime: + type: "string" + format: "date-time" + id: + type: "string" + inviteDateTime: + type: "string" + format: "date-time" + mediaBypassEnabled: + type: "boolean" + mediaPathLocation: + type: "string" + signalingLocation: + type: "string" + startDateTime: + type: "string" + format: "date-time" + successfulCall: + type: "boolean" + trunkFullyQualifiedDomainName: + type: "string" + userId: + type: "string" + FailureInfo: + type: "object" + properties: + reason: + type: "string" + stage: + type: "string" + GraphUser: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" + Identity: + type: "object" + properties: + applicationIdentityType: + type: "string" + email: + type: "string" + id: + type: "string" + tenantId: + type: "string" + userIdentityType: + type: "string" + IdentitySet: + type: "object" + properties: + application: + $ref: "#/definitions/Identity" + applicationInstance: + $ref: "#/definitions/Identity" + conversation: + $ref: "#/definitions/Identity" + conversationIdentityType: + $ref: "#/definitions/Identity" + device: + $ref: "#/definitions/Identity" + encrypted: + $ref: "#/definitions/Identity" + guest: + $ref: "#/definitions/Identity" + onPremises: + $ref: "#/definitions/Identity" + user: + $ref: "#/definitions/Identity" + Installed: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamsAppId: + type: "string" + Joined: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + members: + type: "array" + items: + $ref: "#/definitions/TeamWorkUserIdentity" + JoiningDisabled: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamId: + type: "string" + JoiningEnabled: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamId: + type: "string" + Left: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + members: + type: "array" + items: + $ref: "#/definitions/TeamWorkUserIdentity" + LobbyBypassSettings: + type: "object" + properties: + lobbyBypassDuration: + type: "integer" + lobbyBypassEnabled: + type: "boolean" + LocaleInfo: + type: "object" + properties: + displayName: + type: "string" + locale: + type: "string" + MailboxSettings: + type: "object" + properties: + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + MeetingAttendanceReport: + type: "object" + properties: + attendanceRecords: + type: "array" + items: + $ref: "#/definitions/AttendanceReport" + id: + type: "string" + meetingEndDateTime: + type: "string" + format: "date-time" + meetingStartDateTime: + type: "string" + format: "date-time" + totalParticipantCount: + type: "integer" + MeetingInfo: + type: "object" + properties: + allowConversationWithoutHost: + type: "boolean" + organizer: + $ref: "#/definitions/IdentitySet" + MeetingParticipant: + type: "object" + properties: + attendees: + type: "array" + items: + $ref: "#/definitions/MeetingParticipantInfo" + organizer: + $ref: "#/definitions/MeetingParticipantInfo" + MeetingParticipantInfo: + type: "object" + properties: + identity: + $ref: "#/definitions/IdentitySet" + role: + type: "string" + MeetingPolicyUpdated: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + meetingChatEnabled: + type: "boolean" + meetingChatId: + type: "string" + MembersAdded: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + members: + type: "array" + items: + $ref: "#/definitions/TeamWorkUserIdentity" + visibleHistoryStartDateTime: + type: "string" + format: "date-time" + MessageBody: + type: "object" + properties: + content: + type: "string" + contentType: + type: "string" + Offset: + type: "object" + properties: + dayOccurrence: + type: "integer" + dayOfWeek: + type: "string" + daylightBias: + type: "integer" + month: + type: "integer" + time: + type: "string" + year: + type: "integer" + Organizer: + type: "object" + properties: + id: + type: "string" + identity: + $ref: "#/definitions/IdentitySet" + PSTNCall: + type: "object" + properties: + callDurationSource: + type: "string" + callId: + type: "string" + callType: + type: "string" + charge: + type: "number" + conferenceId: + type: "string" + connectionCharge: + type: "number" + currency: + type: "string" + destinationContext: + type: "string" + destinationName: + type: "string" + duration: + type: "integer" + endDateTime: + type: "string" + format: "date-time" + id: + type: "string" + inventoryType: + type: "string" + licenseCapability: + type: "string" + operator: + type: "string" + startDateTime: + type: "string" + format: "date-time" + tenantCountryCode: + type: "string" + usageCountryCode: + type: "string" + userId: + type: "string" + Participant: + type: "object" + properties: + id: + type: "string" + identity: + $ref: "#/definitions/IdentitySet" + ParticipantInfo: + type: "object" + properties: + countryCode: + type: "string" + endpointType: + type: "string" + identity: + $ref: "#/definitions/IdentitySet" + participantId: + type: "string" + region: + type: "string" + Pinned: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + eventDateTime: + type: "string" + format: "date-time" + initiator: + $ref: "#/definitions/IdentitySet" + Removed: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamsAppId: + type: "string" + Renamed: + type: "object" + properties: + '@odata.type': + type: "string" + channelId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + Renamed_1: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamId: + type: "string" + Session: + type: "object" + properties: + callee: + $ref: "#/definitions/CallerInfo" + caller: + $ref: "#/definitions/CallerInfo" + endDateTime: + type: "string" + format: "date-time" + failureInfo: + $ref: "#/definitions/FailureInfo" + id: + type: "string" + isTest: + type: "boolean" + modalities: + type: "array" + items: + type: "string" + startDateTime: + type: "string" + format: "date-time" + SetAsFavoriteByDefault: + type: "object" + properties: + '@odata.type': + type: "string" + channelId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + TabUpdated: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + tabId: + type: "string" + Team: + type: "object" + properties: + id: + type: "string" + internalId: + type: "string" + isArchived: + type: "boolean" + sourceId: + type: "string" + visibility: + type: "string" + TeamWorkUserIdentity: + type: "object" + properties: + id: + type: "string" + tenantId: + type: "string" + userIdentityType: + type: "string" + TeamworkOnlineMeetingInfo: + type: "object" + properties: + calendarEventId: + type: "string" + joinWebUrl: + type: "string" + organizer: + $ref: "#/definitions/TeamWorkUserIdentity" + Unarchived: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamId: + type: "string" + Unpinned: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + eventDateTime: + type: "string" + format: "date-time" + initiator: + $ref: "#/definitions/IdentitySet" + UnsetAsFavoriteByDefault: + type: "object" + properties: + '@odata.type': + type: "string" + channelId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + Upgraded: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamsAppId: + type: "string" + WatermarkProtection: + type: "object" + properties: + enabledForContentSharing: + type: "boolean" + enabledForVideo: + type: "boolean" + WorkingHours: + type: "object" + properties: + daysOfWeek: + type: "array" + items: + type: "string" + endTime: + type: "string" + format: "time" + startTime: + type: "string" + format: "time" + timeZone: + anyOf: + - $ref: "#/definitions/CustomTimeZone" diff --git a/docs/sources/microsoft-365/msft-teams/msft-teams_no-app-ids.yaml b/docs/sources/microsoft-365/msft-teams/msft-teams_no-app-ids.yaml new file mode 100644 index 0000000000..08a3ae37db --- /dev/null +++ b/docs/sources/microsoft-365/msft-teams/msft-teams_no-app-ids.yaml @@ -0,0 +1,1680 @@ +--- +endpoints: + - pathTemplate: "/v1.0/communications/callRecords/getDirectRoutingCalls(fromDateTime={startDate},toDateTime={endDate})" + allowedQueryParams: + - "$skip" + transforms: + - ! + jsonPaths: + - "$..user.id" + - "$..userId" + encoding: "URL_SAFE_TOKEN" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/DirectRoutingCall" + - pathTemplate: "/v1.0/communications/callRecords/getPstnCalls(fromDateTime={startDate},toDateTime={endDate})" + allowedQueryParams: + - "$skip" + transforms: + - ! + jsonPaths: + - "$..user.id" + - "$..userId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..callId" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/PSTNCall" + - pathTemplate: "/v1.0/communications/calls/{callId}" + allowedQueryParams: + - "$select" + - "$top" + - "$expand" + transforms: + - ! + jsonPaths: + - "$..user.id" + - "$..userId" + encoding: "URL_SAFE_TOKEN" + responseSchema: + type: "object" + properties: + callChainId: + type: "string" + chatInfo: + $ref: "#/definitions/ChatInfo" + direction: + type: "string" + id: + type: "string" + mediaState: + type: "string" + meetingInfo: + $ref: "#/definitions/MeetingInfo" + myParticipantId: + type: "string" + requestModalities: + type: "array" + items: + type: "string" + source: + $ref: "#/definitions/ParticipantInfo" + state: + type: "string" + targets: + type: "array" + items: + $ref: "#/definitions/ParticipantInfo" + - pathTemplate: "/v1.0/teams" + allowedQueryParams: + - "$select" + - "$top" + - "$skiptoken" + - "$filter" + - "$count" + transforms: + - ! + jsonPaths: + - "$..user.id" + - "$..userId" + encoding: "URL_SAFE_TOKEN" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/Team" + - pathTemplate: "/v1.0/teams/{teamId}/allChannels" + allowedQueryParams: + - "$select" + - "$filter" + transforms: + - ! + jsonPaths: + - "$..user.id" + - "$..userId" + encoding: "URL_SAFE_TOKEN" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/Channel" + - pathTemplate: "/v1.0/teams/{teamId}/channels/{channelId}/messages" + allowedQueryParams: + - "$select" + - "$top" + - "$skiptoken" + - "$expand" + augments: + - ! + jsonPaths: + - "$..body.content" + transforms: + - ! + jsonPaths: + - "$..user.id" + - "$..userId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..body.content" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/ChatMessage" + - pathTemplate: "/v1.0/teams/{teamId}/channels/{channelId}/messages/delta" + allowedQueryParams: + - "$select" + - "$top" + - "$skiptoken" + - "$expand" + - "$deltatoken" + - "$filter" + augments: + - ! + jsonPaths: + - "$..body.content" + transforms: + - ! + jsonPaths: + - "$..user.id" + - "$..userId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..body.content" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/ChatMessage" + - pathRegex: "^/v1.0/chats/(/p~[a-zA-Z0-9_-]+?)?[^/]*/messages(\\?.*)?" + augments: + - ! + jsonPaths: + - "$..body.content" + transforms: + - ! + jsonPaths: + - "$..emailAddress" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..user.id" + - "$..userId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..chatId" + - ! + jsonPaths: + - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" + regex: "^https://graph.microsoft.com/v1.0/chats/(.*)/messages(\\?.*).*$" + - ! + jsonPaths: + - "$..body.content" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/ChatMessage" + - pathRegex: "^/v1.0/communications/callRecords(\\?.*)?$" + allowedQueryParams: + - "$select" + - "$expand" + - "$filter" + transforms: + - ! + jsonPaths: + - "$..user.id" + - "$..userId" + - "$..guest.id" + - "$..phone.id" + - "$..organizer_v2.id" + - "$..participants_v2[*].id" + encoding: "URL_SAFE_TOKEN" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/CallRecord" + - pathRegex: "^/v1.0/communications/callRecords/[({]?[a-fA-F0-9]{8}[-]?([a-fA-F0-9]{4}[-]?){3}[a-fA-F0-9]{12}[})]?(\\\ + ?.*)?$" + allowedQueryParams: + - "$select" + - "$expand" + - "$filter" + transforms: + - ! + jsonPaths: + - "$..user.id" + - "$..userId" + - "$..guest.id" + - "$..phone.id" + - "$..organizer_v2.id" + - "$..participants_v2[*].id" + encoding: "URL_SAFE_TOKEN" + responseSchema: + type: "object" + properties: + endDateTime: + type: "string" + format: "date-time" + id: + type: "string" + joinWebUrl: + type: "string" + lastModifiedDateTime: + type: "string" + format: "date-time" + modalities: + type: "array" + items: + type: "string" + organizer: + $ref: "#/definitions/IdentitySet" + organizer_v2: + $ref: "#/definitions/Organizer" + participants: + type: "array" + items: + $ref: "#/definitions/IdentitySet" + participants_v2: + type: "array" + items: + $ref: "#/definitions/Participant" + sessions: + type: "array" + items: + $ref: "#/definitions/Session" + startDateTime: + type: "string" + format: "date-time" + type: + type: "string" + version: + type: "integer" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/chats(\\?.*)?" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..emailAddress" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..user.id" + - "$..userId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..id" + - ! + jsonPaths: + - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" + regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" + - ! + jsonPaths: + - "$..topic" + allowedPhrases: + - "Focus Time" + - "Focus" + - "No Meetings" + - "No Meeting" + - "no mtg" + - "Prep" + - "OOO" + - "Out of Office" + - "Out of the Office" + - "call" + - "brainstorm" + - "brainstorming" + - "brain storm" + - "check in" + - "check-in" + - "checkin" + - "coffee" + - "food" + - "happy hour" + - "lunch" + - "office hours" + - "onsite" + - "on-site" + - "social" + - "stand up" + - "stand-up" + - "standup" + - "team building" + - "teambuilding" + - "daily" + - "bi-weekly" + - "biweekly" + - "weekly" + - "monthly" + - "quarterly" + - "1:1" + - "1-on-1" + - "one-on-one" + - "all-hands" + - "all hands" + - "allhands" + - "team meeting" + - "decision making" + - "decision" + - "hand off" + - "hand-off" + - "handoff" + - "handover" + - "information sharing" + - "problem solving" + - "retro" + - "review" + - "sprint" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/Chat" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/onlineMeetings(\\?.*)?" + transforms: + - ! + jsonPaths: + - "$..user.id" + - "$..userId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..emailAddress" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..identity.id" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" + regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" + responseSchema: + type: "object" + properties: + allowAttendeeToEnableCamera: + type: "boolean" + allowAttendeeToEnableMic: + type: "boolean" + allowMeetingChat: + type: "string" + allowParticipantsToChangeName: + type: "boolean" + allowTeamworkReactions: + type: "boolean" + allowedPresenters: + type: "string" + chatInfo: + $ref: "#/definitions/ChatInfo" + creationDateTime: + type: "string" + format: "date-time" + endDateTime: + type: "string" + format: "date-time" + id: + type: "string" + joinWebUrl: + type: "string" + lobbyBypassSettings: + $ref: "#/definitions/LobbyBypassSettings" + participants: + $ref: "#/definitions/MeetingParticipant" + shareMeetingChatHistoryDefault: + type: "string" + startDateTime: + type: "string" + format: "date-time" + videoTeleconferenceId: + type: "string" + watermarkProtection: + $ref: "#/definitions/WatermarkProtection" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/onlineMeetings/[a-zA-Z0-9_-]+/attendanceReports(\\\ + ?.*)?" + transforms: + - ! + jsonPaths: + - "$..emailAddress" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..identity.id" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..user.id" + - "$..userId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" + regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/MeetingAttendanceReport" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/onlineMeetings/[a-zA-Z0-9_-]+/attendanceReports/[a-zA-Z0-9_-]+(\\\ + ?.*)?" + transforms: + - ! + jsonPaths: + - "$..emailAddress" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..identity.id" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..user.id" + - "$..userId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" + regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" + responseSchema: + type: "object" + properties: + attendanceRecords: + type: "array" + items: + $ref: "#/definitions/AttendanceReport" + id: + type: "string" + meetingEndDateTime: + type: "string" + format: "date-time" + meetingStartDateTime: + type: "string" + format: "date-time" + totalParticipantCount: + type: "integer" + - pathRegex: "^/v1.0/users(\\?.*)?$" + allowedQueryParams: + - "$top" + - "$select" + - "$skiptoken" + - "$orderBy" + - "$count" + - "$filter" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..id" + includeReversible: true + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphUser" + - pathRegex: "^/v1.0/users/p~[a-zA-Z0-9_-]+(\\?.*)?$" + allowedQueryParams: + - "$select" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..id" + includeReversible: true + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" +definitions: + Added: + type: "object" + properties: + '@odata.type': + type: "string" + channelId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + Archived: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamId: + type: "string" + AttendanceInterval: + type: "object" + properties: + durationInSeconds: + type: "integer" + joinDateTime: + type: "string" + format: "date-time" + leaveDateTime: + type: "string" + format: "date-time" + AttendanceReport: + type: "object" + properties: + attendanceIntervals: + type: "array" + items: + $ref: "#/definitions/AttendanceInterval" + emailAddress: + type: "string" + identity: + $ref: "#/definitions/Identity" + role: + type: "string" + totalAttendanceInSeconds: + type: "integer" + AutomaticRepliesSettings: + type: "object" + properties: + externalAudience: + type: "string" + scheduledEndDateTime: + $ref: "#/definitions/DateTimeTimeZone" + scheduledStartDateTime: + $ref: "#/definitions/DateTimeTimeZone" + status: + type: "string" + CallEnded: + type: "object" + properties: + '@odata.type': + type: "string" + callDuration: + type: "string" + callEventType: + type: "string" + callId: + type: "string" + callParticipants: + type: "array" + items: + $ref: "#/definitions/CallParticipantInfo" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + CallParticipantInfo: + type: "object" + properties: + participant: + $ref: "#/definitions/IdentitySet" + CallRecord: + type: "object" + properties: + endDateTime: + type: "string" + format: "date-time" + id: + type: "string" + joinWebUrl: + type: "string" + lastModifiedDateTime: + type: "string" + format: "date-time" + modalities: + type: "array" + items: + type: "string" + organizer: + $ref: "#/definitions/IdentitySet" + organizer_v2: + $ref: "#/definitions/Organizer" + participants: + type: "array" + items: + $ref: "#/definitions/IdentitySet" + participants_v2: + type: "array" + items: + $ref: "#/definitions/Participant" + sessions: + type: "array" + items: + $ref: "#/definitions/Session" + startDateTime: + type: "string" + format: "date-time" + type: + type: "string" + version: + type: "integer" + CallRecording: + type: "object" + properties: + '@odata.type': + type: "string" + callId: + type: "string" + callRecordingDuration: + type: "string" + callRecordingStatus: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + meetingOrganizer: + $ref: "#/definitions/IdentitySet" + CallStarted: + type: "object" + properties: + '@odata.type': + type: "string" + callEventType: + type: "string" + callId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + CallTranscript: + type: "object" + properties: + '@odata.type': + type: "string" + callId: + type: "string" + callTranscriptICalUid: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + meetingOrganizer: + $ref: "#/definitions/IdentitySet" + CallerInfo: + type: "object" + properties: + identity: + $ref: "#/definitions/IdentitySet" + Channel: + type: "object" + properties: + archived: + type: "boolean" + createdDateTime: + type: "string" + format: "date-time" + id: + type: "string" + isFavoriteByDefault: + type: "boolean" + membershipType: + type: "string" + sourceId: + type: "string" + summary: + $ref: "#/definitions/ChannelSummary" + teamId: + type: "string" + tenantId: + type: "string" + webUrl: + type: "string" + workItemId: + type: "string" + ChannelIdentity: + type: "object" + properties: + channelId: + type: "string" + teamId: + type: "string" + ChannelSummary: + type: "object" + properties: + guestsCount: + type: "integer" + hasMembersFromOtherTenants: + type: "boolean" + membersCount: + type: "integer" + ownersCount: + type: "integer" + Chat: + type: "object" + properties: + chatType: + type: "string" + chatViewpoint: + $ref: "#/definitions/ChatViewpoint" + createdDateTime: + type: "string" + format: "date-time" + id: + type: "string" + lastMessagePreview: + $ref: "#/definitions/ChatMessage" + lastUpdatedDateTime: + type: "string" + format: "date-time" + onlineMeetingInfo: + $ref: "#/definitions/TeamworkOnlineMeetingInfo" + sourceId: + type: "string" + tenantId: + type: "string" + topic: + type: "string" + webUrl: + type: "string" + ChatInfo: + type: "object" + properties: + messageId: + type: "string" + replyChainMessageId: + type: "string" + threadId: + type: "string" + ChatMessage: + type: "object" + properties: + attachmentList: + type: "array" + items: + $ref: "#/definitions/ChatMessageAttachment" + body: + $ref: "#/definitions/MessageBody" + channelIdentity: + $ref: "#/definitions/ChannelIdentity" + chatId: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + deletedDateTime: + type: "string" + format: "date-time" + etag: + type: "string" + eventDetail: + anyOf: + - $ref: "#/definitions/CallEnded" + - $ref: "#/definitions/CallRecording" + - $ref: "#/definitions/CallStarted" + - $ref: "#/definitions/CallTranscript" + - $ref: "#/definitions/Added" + - $ref: "#/definitions/Deleted" + - $ref: "#/definitions/DescriptionUpdated" + - $ref: "#/definitions/Renamed" + - $ref: "#/definitions/SetAsFavoriteByDefault" + - $ref: "#/definitions/UnsetAsFavoriteByDefault" + - $ref: "#/definitions/ChatRename" + - $ref: "#/definitions/ConversationMemberRoleUpdated" + - $ref: "#/definitions/MeetingPolicyUpdated" + - $ref: "#/definitions/MembersAdded" + - $ref: "#/definitions/Deleted_1" + - $ref: "#/definitions/Joined" + - $ref: "#/definitions/Left" + - $ref: "#/definitions/Pinned" + - $ref: "#/definitions/Unpinned" + - $ref: "#/definitions/TabUpdated" + - $ref: "#/definitions/Archived" + - $ref: "#/definitions/Created" + - $ref: "#/definitions/DescriptionUpdated_1" + - $ref: "#/definitions/JoiningDisabled" + - $ref: "#/definitions/JoiningEnabled" + - $ref: "#/definitions/Renamed_1" + - $ref: "#/definitions/Unarchived" + - $ref: "#/definitions/Installed" + - $ref: "#/definitions/Removed" + - $ref: "#/definitions/Upgraded" + from: + $ref: "#/definitions/IdentitySet" + id: + type: "string" + importance: + type: "string" + lastEditedDateTime: + type: "string" + format: "date-time" + lastModifiedDateTime: + type: "string" + format: "date-time" + locale: + type: "string" + mentions: + type: "array" + items: + $ref: "#/definitions/ChatMessageMention" + messageType: + type: "string" + nextVersion: + type: "string" + reactions: + type: "array" + items: + $ref: "#/definitions/ChatMessageReaction" + replies: + type: "array" + items: + $ref: "#/definitions/ChatMessage" + replyToId: + type: "string" + ChatMessageAttachment: + type: "object" + properties: + content: + type: "string" + contentType: + type: "string" + contentUrl: + type: "string" + id: + type: "string" + name: + type: "string" + thumbnailUrl: + type: "string" + ChatMessageMention: + type: "object" + properties: + id: + type: "integer" + mentioned: + $ref: "#/definitions/IdentitySet" + ChatMessageReaction: + type: "object" + properties: + createdDateTime: + type: "string" + format: "date-time" + reactionType: + type: "string" + user: + $ref: "#/definitions/IdentitySet" + ChatRename: + type: "object" + properties: + '@odata.type': + type: "string" + chatId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + ChatViewpoint: + type: "object" + properties: + isHidden: + type: "boolean" + lastMessageReadDateTime: + type: "string" + format: "date-time" + ConversationMemberRoleUpdated: + type: "object" + properties: + '@odata.type': + type: "string" + conversationMemberRoles: + type: "array" + items: + type: "string" + conversationMemberUser: + $ref: "#/definitions/TeamWorkUserIdentity" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + Created: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamId: + type: "string" + CustomTimeZone: + type: "object" + properties: + '@odata.type': + type: "string" + bias: + type: "integer" + daylightOffset: + $ref: "#/definitions/Offset" + name: + type: "string" + standardOffset: + $ref: "#/definitions/Offset" + DateTimeTimeZone: + type: "object" + properties: + dateTime: + type: "string" + format: "date-time" + timeZone: + type: "string" + timeZoneIANA: + type: "string" + Deleted: + type: "object" + properties: + '@odata.type': + type: "string" + channelId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + Deleted_1: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + members: + type: "array" + items: + $ref: "#/definitions/TeamWorkUserIdentity" + DescriptionUpdated: + type: "object" + properties: + '@odata.type': + type: "string" + channelId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + DescriptionUpdated_1: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamId: + type: "string" + DirectRoutingCall: + type: "object" + properties: + callType: + type: "string" + correlationId: + type: "string" + duration: + type: "integer" + endDateTime: + type: "string" + format: "date-time" + failureDateTime: + type: "string" + format: "date-time" + id: + type: "string" + inviteDateTime: + type: "string" + format: "date-time" + mediaBypassEnabled: + type: "boolean" + mediaPathLocation: + type: "string" + signalingLocation: + type: "string" + startDateTime: + type: "string" + format: "date-time" + successfulCall: + type: "boolean" + trunkFullyQualifiedDomainName: + type: "string" + userId: + type: "string" + FailureInfo: + type: "object" + properties: + reason: + type: "string" + stage: + type: "string" + GraphUser: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" + Identity: + type: "object" + properties: + applicationIdentityType: + type: "string" + email: + type: "string" + id: + type: "string" + tenantId: + type: "string" + userIdentityType: + type: "string" + IdentitySet: + type: "object" + properties: + application: + $ref: "#/definitions/Identity" + applicationInstance: + $ref: "#/definitions/Identity" + conversation: + $ref: "#/definitions/Identity" + conversationIdentityType: + $ref: "#/definitions/Identity" + device: + $ref: "#/definitions/Identity" + encrypted: + $ref: "#/definitions/Identity" + guest: + $ref: "#/definitions/Identity" + onPremises: + $ref: "#/definitions/Identity" + user: + $ref: "#/definitions/Identity" + Installed: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamsAppId: + type: "string" + Joined: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + members: + type: "array" + items: + $ref: "#/definitions/TeamWorkUserIdentity" + JoiningDisabled: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamId: + type: "string" + JoiningEnabled: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamId: + type: "string" + Left: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + members: + type: "array" + items: + $ref: "#/definitions/TeamWorkUserIdentity" + LobbyBypassSettings: + type: "object" + properties: + lobbyBypassDuration: + type: "integer" + lobbyBypassEnabled: + type: "boolean" + LocaleInfo: + type: "object" + properties: + displayName: + type: "string" + locale: + type: "string" + MailboxSettings: + type: "object" + properties: + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + MeetingAttendanceReport: + type: "object" + properties: + attendanceRecords: + type: "array" + items: + $ref: "#/definitions/AttendanceReport" + id: + type: "string" + meetingEndDateTime: + type: "string" + format: "date-time" + meetingStartDateTime: + type: "string" + format: "date-time" + totalParticipantCount: + type: "integer" + MeetingInfo: + type: "object" + properties: + allowConversationWithoutHost: + type: "boolean" + organizer: + $ref: "#/definitions/IdentitySet" + MeetingParticipant: + type: "object" + properties: + attendees: + type: "array" + items: + $ref: "#/definitions/MeetingParticipantInfo" + organizer: + $ref: "#/definitions/MeetingParticipantInfo" + MeetingParticipantInfo: + type: "object" + properties: + identity: + $ref: "#/definitions/IdentitySet" + role: + type: "string" + MeetingPolicyUpdated: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + meetingChatEnabled: + type: "boolean" + meetingChatId: + type: "string" + MembersAdded: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + members: + type: "array" + items: + $ref: "#/definitions/TeamWorkUserIdentity" + visibleHistoryStartDateTime: + type: "string" + format: "date-time" + MessageBody: + type: "object" + properties: + content: + type: "string" + contentType: + type: "string" + Offset: + type: "object" + properties: + dayOccurrence: + type: "integer" + dayOfWeek: + type: "string" + daylightBias: + type: "integer" + month: + type: "integer" + time: + type: "string" + year: + type: "integer" + Organizer: + type: "object" + properties: + id: + type: "string" + identity: + $ref: "#/definitions/IdentitySet" + PSTNCall: + type: "object" + properties: + callDurationSource: + type: "string" + callId: + type: "string" + callType: + type: "string" + charge: + type: "number" + conferenceId: + type: "string" + connectionCharge: + type: "number" + currency: + type: "string" + destinationContext: + type: "string" + destinationName: + type: "string" + duration: + type: "integer" + endDateTime: + type: "string" + format: "date-time" + id: + type: "string" + inventoryType: + type: "string" + licenseCapability: + type: "string" + operator: + type: "string" + startDateTime: + type: "string" + format: "date-time" + tenantCountryCode: + type: "string" + usageCountryCode: + type: "string" + userId: + type: "string" + Participant: + type: "object" + properties: + id: + type: "string" + identity: + $ref: "#/definitions/IdentitySet" + ParticipantInfo: + type: "object" + properties: + countryCode: + type: "string" + endpointType: + type: "string" + identity: + $ref: "#/definitions/IdentitySet" + participantId: + type: "string" + region: + type: "string" + Pinned: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + eventDateTime: + type: "string" + format: "date-time" + initiator: + $ref: "#/definitions/IdentitySet" + Removed: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamsAppId: + type: "string" + Renamed: + type: "object" + properties: + '@odata.type': + type: "string" + channelId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + Renamed_1: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamId: + type: "string" + Session: + type: "object" + properties: + callee: + $ref: "#/definitions/CallerInfo" + caller: + $ref: "#/definitions/CallerInfo" + endDateTime: + type: "string" + format: "date-time" + failureInfo: + $ref: "#/definitions/FailureInfo" + id: + type: "string" + isTest: + type: "boolean" + modalities: + type: "array" + items: + type: "string" + startDateTime: + type: "string" + format: "date-time" + SetAsFavoriteByDefault: + type: "object" + properties: + '@odata.type': + type: "string" + channelId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + TabUpdated: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + tabId: + type: "string" + Team: + type: "object" + properties: + id: + type: "string" + internalId: + type: "string" + isArchived: + type: "boolean" + sourceId: + type: "string" + visibility: + type: "string" + TeamWorkUserIdentity: + type: "object" + properties: + id: + type: "string" + tenantId: + type: "string" + userIdentityType: + type: "string" + TeamworkOnlineMeetingInfo: + type: "object" + properties: + calendarEventId: + type: "string" + joinWebUrl: + type: "string" + organizer: + $ref: "#/definitions/TeamWorkUserIdentity" + Unarchived: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamId: + type: "string" + Unpinned: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + eventDateTime: + type: "string" + format: "date-time" + initiator: + $ref: "#/definitions/IdentitySet" + UnsetAsFavoriteByDefault: + type: "object" + properties: + '@odata.type': + type: "string" + channelId: + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + Upgraded: + type: "object" + properties: + '@odata.type': + type: "string" + dataType: + type: "string" + initiator: + $ref: "#/definitions/IdentitySet" + teamsAppId: + type: "string" + WatermarkProtection: + type: "object" + properties: + enabledForContentSharing: + type: "boolean" + enabledForVideo: + type: "boolean" + WorkingHours: + type: "object" + properties: + daysOfWeek: + type: "array" + items: + type: "string" + endTime: + type: "string" + format: "time" + startTime: + type: "string" + format: "time" + timeZone: + anyOf: + - $ref: "#/definitions/CustomTimeZone" diff --git a/docs/sources/microsoft-365/msft-teams/msft-teams_no-userIds.yaml b/docs/sources/microsoft-365/msft-teams/msft-teams_no-userIds.yaml deleted file mode 100644 index 37e410db94..0000000000 --- a/docs/sources/microsoft-365/msft-teams/msft-teams_no-userIds.yaml +++ /dev/null @@ -1,388 +0,0 @@ ---- -endpoints: - - pathTemplate: "/v1.0/teams" - allowedQueryParams: - - "$select" - - "$top" - - "$skiptoken" - - "$filter" - - "$count" - transforms: - - ! - jsonPaths: - - "$..user.id" - - "$..userId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..displayName" - - "$..description" - - "$..['@odata.context']" - - "$..['@odata.id']" - - "$..['@odata.type']" - - "$..['@odata.count']" - - pathTemplate: "/v1.0/teams/{teamId}/allChannels" - allowedQueryParams: - - "$select" - - "$filter" - transforms: - - ! - jsonPaths: - - "$..user.id" - - "$..userId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..displayName" - - "$..description" - - "$..['@odata.context']" - - "$..['@odata.id']" - - "$..['@odata.type']" - - "$..['@odata.count']" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/chats(\\?.*)?" - allowedRequestHeaders: - - "ConsistencyLevel" - transforms: - - ! - jsonPaths: - - "$..emailAddress" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..id" - - ! - jsonPaths: - - "$..topic" - - "$..['lastMessagePreview@odata.context']" - - "$..['@odata.context']" - - "$..['@odata.count']" - - "$..user.id" - - "$..userId" - - ! - jsonPaths: - - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" - regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" - - ! - jsonPaths: - - "$..user.displayName" - - "$..body.content" - - "$..attachments" - - "$..mentions[*].mentionText" - - "$..eventDetail.teamDescription" - - "$..eventDetail.chatDisplayName" - - pathTemplate: "/v1.0/teams/{teamId}/channels/{channelId}/messages" - allowedQueryParams: - - "$select" - - "$top" - - "$skiptoken" - - "$expand" - transforms: - - ! - jsonPaths: - - "$..user.id" - - "$..userId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..user.displayName" - - "$..body.content" - - "$..attachments" - - "$..mentions[*].mentionText" - - "$..eventDetail.teamDescription" - - "$..eventDetail.chatDisplayName" - - "$..['@odata.context']" - - "$..['@odata.count']" - - pathTemplate: "/v1.0/teams/{teamId}/channels/{channelId}/messages/delta" - allowedQueryParams: - - "$select" - - "$top" - - "$skiptoken" - - "$expand" - - "$deltatoken" - - "$filter" - transforms: - - ! - jsonPaths: - - "$..user.id" - - "$..userId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..user.displayName" - - "$..body.content" - - "$..attachments" - - "$..mentions[*].mentionText" - - "$..eventDetail.teamDescription" - - "$..eventDetail.chatDisplayName" - - "$..['@odata.context']" - - "$..['@odata.count']" - - pathRegex: "^/v1.0/chats/(/p~[a-zA-Z0-9_-]+?)?[^/]*/messages(\\?.*)?" - transforms: - - ! - jsonPaths: - - "$..emailAddress" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..displayName" - - "$..description" - - ! - jsonPaths: - - "$..user.displayName" - - "$..body.content" - - "$..attachments" - - "$..mentions[*].mentionText" - - "$..eventDetail.teamDescription" - - "$..eventDetail.chatDisplayName" - - ! - jsonPaths: - - "$..user.id" - - "$..userId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..chatId" - - ! - jsonPaths: - - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" - regex: "^https://graph.microsoft.com/v1.0/chats/(.*)/messages(\\?.*).*$" - - ! - jsonPaths: - - "$..['@odata.context']" - - ! - jsonPaths: - - "$..['@odata.count']" - - pathTemplate: "/v1.0/communications/calls/{callId}" - allowedQueryParams: - - "$select" - - "$top" - - "$expand" - transforms: - - ! - jsonPaths: - - "$..user.id" - - "$..userId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..displayName" - - "$..['@odata.context']" - - "$..['@odata.count']" - - "$..['@odata.type']" - - pathRegex: "^/v1.0/communications/callRecords(/(?[({]?[a-fA-F0-9]{8}[-]?([a-fA-F0-9]{4}[-]?){3}[a-fA-F0-9]{12}[})]?))?(?[a-zA-z0-9\\\ - s\\$\\=\\?\\(\\)]*)" - allowedQueryParams: - - "$select" - - "$expand" - - "$filter" - transforms: - - ! - jsonPaths: - - "$..user.id" - - "$..userId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..user.displayName" - - "$..reflexiveIPAddress" - - "$..relayIPAddress" - - "$..ipAddress" - - "$..subnet" - - "$..macAddress" - - "$..caller.name" - - "$..callee.name" - - "$..captureDeviceName" - - "$..renderDeviceName" - - "$..organizer_v2.id" - - "$..participants_v2[*].id" - - "$..phone" - - "$..['organizer_v2@odata.context']" - - "$..['@odata.context']" - - "$..['@odata.type']" - - pathTemplate: "/v1.0/communications/callRecords/getDirectRoutingCalls(fromDateTime={startDate},toDateTime={endDate})" - allowedQueryParams: - - "$skip" - transforms: - - ! - jsonPaths: - - "$..user.id" - - "$..userId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..value[*].userPrincipalName" - - "$..value[*].userDisplayName" - - "$..value[*].callerNumber" - - "$..value[*].calleeNumber" - - "$..['@odata.context']" - - "$..['@odata.type']" - - "$..['@odata.count']" - - pathTemplate: "/v1.0/communications/callRecords/getPstnCalls(fromDateTime={startDate},toDateTime={endDate})" - allowedQueryParams: - - "$skip" - transforms: - - ! - jsonPaths: - - "$..user.id" - - "$..userId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..callId" - - ! - jsonPaths: - - "$..value[*].userPrincipalName" - - "$..value[*].userDisplayName" - - "$..value[*].callerNumber" - - "$..value[*].calleeNumber" - - "$..['@odata.context']" - - "$..['@odata.type']" - - "$..['@odata.count']" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/onlineMeetings/[a-zA-Z0-9_-]+/attendanceReports/[a-zA-Z0-9_-]+(\\\ - ?.*)?" - transforms: - - ! - jsonPaths: - - "$..emailAddress" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..identity.id" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..user.id" - - "$..userId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..displayName" - - "$..subject" - - "$..joinInformation" - - "$..joinMeetingIdSettings.isPasscodeRequired" - - "$..joinMeetingIdSettings.passcode" - - "$..upn" - - ! - jsonPaths: - - "$..['@odata.context']" - - ! - jsonPaths: - - "$..['@odata.type']" - - ! - jsonPaths: - - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" - regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/onlineMeetings/[a-zA-Z0-9_-]+/attendanceReports(\\\ - ?.*)?" - transforms: - - ! - jsonPaths: - - "$..emailAddress" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..identity.id" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..user.id" - - "$..userId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..displayName" - - "$..subject" - - "$..joinInformation" - - "$..joinMeetingIdSettings.isPasscodeRequired" - - "$..joinMeetingIdSettings.passcode" - - "$..upn" - - ! - jsonPaths: - - "$..['@odata.context']" - - ! - jsonPaths: - - "$..['@odata.type']" - - ! - jsonPaths: - - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" - regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/onlineMeetings(\\?.*)?" - transforms: - - ! - jsonPaths: - - "$..user.id" - - "$..userId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..emailAddress" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..identity.id" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" - regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" - - ! - jsonPaths: - - "$..displayName" - - "$..subject" - - "$..joinInformation" - - "$..joinMeetingIdSettings.isPasscodeRequired" - - "$..joinMeetingIdSettings.passcode" - - "$..upn" - - "$..['@odata.context']" - - "$..['@odata.type']" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*" - allowedQueryParams: - - "$top" - - "$select" - - "$skiptoken" - - "$orderBy" - - "$count" - - "$filter" - allowedRequestHeaders: - - "ConsistencyLevel" - transforms: - - ! - jsonPaths: - - "$..proxyAddresses[*]" - regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" - - ! - jsonPaths: - - "$..employeeId" - - "$..userPrincipalName" - - "$..imAddresses[*]" - - "$..mail" - - "$..otherMails[*]" - - "$..onPremisesSamAccountName" - - "$..onPremisesUserPrincipalName" - - "$..onPremisesDistinguishedName" - - "$..onPremisesImmutableId" - - "$..identities[*].issuerAssignedId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..id" - includeReversible: true - encoding: "URL_SAFE_TOKEN" diff --git a/docs/sources/microsoft-365/outlook-cal/example-api-responses/original/group-members.json b/docs/sources/microsoft-365/outlook-cal/example-api-responses/original/group-members.json new file mode 100644 index 0000000000..06acac94b8 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-cal/example-api-responses/original/group-members.json @@ -0,0 +1,309 @@ +{ + "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#directoryObjects", + "value": [ + { + "@odata.type": "#microsoft.graph.user", + "id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd", + "businessPhones": [ + "+1 425 555 0109" + ], + "displayName": "Adele Vance", + "givenName": "Adele", + "jobTitle": "Product Marketing Manager", + "mail": "AdeleV@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "18/2111", + "preferredLanguage": "en-US", + "surname": "Vance", + "userPrincipalName": "AdeleV@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "626cbf8c-5dde-46b0-8385-9e40d64736fe", + "businessPhones": [ + "+1 502 555 0102" + ], + "displayName": "Johanna Lorenz", + "givenName": "Johanna", + "jobTitle": "CVP Engineering", + "mail": "JohannaL@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "23/2102", + "preferredLanguage": "en-US", + "surname": "Lorenz", + "userPrincipalName": "JohannaL@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "40079818-3808-4585-903b-02605f061225", + "businessPhones": [ + "+1 502 555 0144" + ], + "displayName": "Patti Fernandez", + "givenName": "Patti", + "jobTitle": "President", + "mail": "PattiF@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "15/1102", + "preferredLanguage": "en-US", + "surname": "Fernandez", + "userPrincipalName": "PattiF@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "074e56ea-0b50-4461-89e5-c67ae14a2c0b", + "businessPhones": [ + "+1 913 555 0101" + ], + "displayName": "Lee Gu", + "givenName": "Lee", + "jobTitle": "CVP Research & Development", + "mail": "LeeG@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "23/3101", + "preferredLanguage": "en-US", + "surname": "Gu", + "userPrincipalName": "LeeG@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "16cfe710-1625-4806-9990-91b8f0afee35", + "businessPhones": [ + "+1 205 555 0103" + ], + "displayName": "Enrico Cattaneo", + "givenName": "Enrico", + "jobTitle": "Attorney", + "mail": "EnricoC@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "14/1102", + "preferredLanguage": "en-US", + "surname": "Cattaneo", + "userPrincipalName": "EnricoC@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "089a6bb8-e8cb-492c-aa41-c078aa0b5120", + "businessPhones": [ + "+1 206 555 0105" + ], + "displayName": "Nestor Wilke", + "givenName": "Nestor", + "jobTitle": "CVP Operations", + "mail": "NestorW@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "36/2121", + "preferredLanguage": "en-US", + "surname": "Wilke", + "userPrincipalName": "NestorW@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "2804bc07-1e1f-4938-9085-ce6d756a32d2", + "businessPhones": [ + "+81 345550115" + ], + "displayName": "Emily Braun", + "givenName": "Emily", + "jobTitle": "Budget Analyst", + "mail": "EmilyB@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "97/2302", + "preferredLanguage": "en-US", + "surname": "Braun", + "userPrincipalName": "EmilyB@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "b66ecf79-a093-4d51-86e0-efcc4531f37a", + "businessPhones": [ + "+1 858 555 0111" + ], + "displayName": "Christie Cline", + "givenName": "Christie", + "jobTitle": "Sr. VP Sales & Marketing", + "mail": "ChristieC@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "131/2105", + "preferredLanguage": "en-US", + "surname": "Cline", + "userPrincipalName": "ChristieC@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "8b209ac8-08ff-4ef1-896d-3b9fde0bbf04", + "businessPhones": [ + "+1 980 555 0101" + ], + "displayName": "Joni Sherman", + "givenName": "Joni", + "jobTitle": "Paralegal", + "mail": "JoniS@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "20/1109", + "preferredLanguage": "en-US", + "surname": "Sherman", + "userPrincipalName": "JoniS@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "4782e723-f4f4-4af3-a76e-25e3bab0d896", + "businessPhones": [ + "+1 858 555 0110" + ], + "displayName": "Alex Wilber", + "givenName": "Alex", + "jobTitle": "Marketing Assistant", + "mail": "AlexW@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "131/1104", + "preferredLanguage": "en-US", + "surname": "Wilber", + "userPrincipalName": "AlexW@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "08fa38e4-cbfa-4488-94ed-c834da6539df", + "businessPhones": [ + "+1 858 555 0109" + ], + "displayName": "Miriam Graham", + "givenName": "Miriam", + "jobTitle": "VP Marketing", + "mail": "MiriamG@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "131/2103", + "preferredLanguage": "en-US", + "surname": "Graham", + "userPrincipalName": "MiriamG@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "24fcbca3-c3e2-48bf-9ffc-c7f81b81483d", + "businessPhones": [ + "+1 205 555 0108" + ], + "displayName": "Diego Siciliani", + "givenName": "Diego", + "jobTitle": "CVP Finance", + "mail": "DiegoS@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "14/1108", + "preferredLanguage": "en-US", + "surname": "Siciliani", + "userPrincipalName": "DiegoS@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "2ed03dfd-01d8-4005-a9ef-fa8ee546dc6c", + "businessPhones": [ + "+1 918 555 0107" + ], + "displayName": "Lidia Holloway", + "givenName": "Lidia", + "jobTitle": "Product Manager", + "mail": "LidiaH@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "20/2107", + "preferredLanguage": "en-US", + "surname": "Holloway", + "userPrincipalName": "LidiaH@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "df043ff1-49d5-414e-86a4-0c7f239c36cf", + "businessPhones": [ + "+1 309 555 0104" + ], + "displayName": "Grady Archie", + "givenName": "Grady", + "jobTitle": "CVP Legal", + "mail": "GradyA@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "19/2109", + "preferredLanguage": "en-US", + "surname": "Archie", + "userPrincipalName": "GradyA@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "ec63c778-24e1-4240-bea3-d12a167d5232", + "businessPhones": [ + "+20 255501070" + ], + "displayName": "Pradeep Gupta", + "givenName": "Pradeep", + "jobTitle": "Accountant II", + "mail": "PradeepG@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "98/2202", + "preferredLanguage": "en-US", + "surname": "Gupta", + "userPrincipalName": "PradeepG@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "48d31887-5fad-4d73-a9f5-3c356e68a038", + "businessPhones": [ + "+1 412 555 0109" + ], + "displayName": "Megan Bowen", + "givenName": "Megan", + "jobTitle": "Auditor", + "mail": "MeganB@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "12/1110", + "preferredLanguage": "en-US", + "surname": "Bowen", + "userPrincipalName": "MeganB@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "e8a02cc7-df4d-4778-956d-784cc9506e5a", + "businessPhones": [ + "+1 918 555 0104" + ], + "displayName": "Lynne Robbins", + "givenName": "Lynne", + "jobTitle": "Product Manager", + "mail": "LynneR@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "20/1104", + "preferredLanguage": "en-US", + "surname": "Robbins", + "userPrincipalName": "LynneR@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "c8913c86-ceea-4d39-b1ea-f63a5b675166", + "businessPhones": [ + "+1 954 555 0118" + ], + "displayName": "Henrietta Mueller", + "givenName": "Henrietta", + "jobTitle": "Marketing Assistant", + "mail": "HenriettaM@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "18/1106", + "preferredLanguage": "en-US", + "surname": "Mueller", + "userPrincipalName": "HenriettaM@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "e3d0513b-449e-4198-ba6f-bd97ae7cae85", + "businessPhones": [ + "+1 918 555 0101" + ], + "displayName": "Isaiah Langer", + "givenName": "Isaiah", + "jobTitle": "Web Marketing Manager", + "mail": "IsaiahL@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "20/1101", + "preferredLanguage": "en-US", + "surname": "Langer", + "userPrincipalName": "IsaiahL@M365x214355.onmicrosoft.com" + } + ] +} diff --git a/docs/sources/microsoft-365/outlook-cal/example-api-responses/original/group.json b/docs/sources/microsoft-365/outlook-cal/example-api-responses/original/group.json new file mode 100644 index 0000000000..f7b5d42720 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-cal/example-api-responses/original/group.json @@ -0,0 +1,44 @@ +{ + "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups/$entity", + "id": "02bd9fd6-8f93-4758-87c3-1fb73740a315", + "deletedDateTime": null, + "classification": null, + "createdDateTime": "2017-07-31T18:56:16Z", + "creationOptions": [ + "ExchangeProvisioningFlags:481" + ], + "description": "Welcome to the HR Taskforce team.", + "displayName": "HR Taskforce", + "expirationDateTime": null, + "groupTypes": [ + "Unified" + ], + "isAssignableToRole": null, + "mail": "HRTaskforce@M365x214355.onmicrosoft.com", + "mailEnabled": true, + "mailNickname": "HRTaskforce", + "membershipRule": null, + "membershipRuleProcessingState": null, + "onPremisesDomainName": null, + "onPremisesLastSyncDateTime": null, + "onPremisesNetBiosName": null, + "onPremisesSamAccountName": null, + "onPremisesSecurityIdentifier": null, + "onPremisesSyncEnabled": null, + "preferredDataLocation": null, + "preferredLanguage": null, + "proxyAddresses": [ + "SMTP:HRTaskforce@M365x214355.onmicrosoft.com", + "SPO:SPO_896cf652-b200-4b74-8111-c013f64406cf@SPO_dcd219dd-bc68-4b9b-bf0b-4a33a796be35" + ], + "renewedDateTime": "2020-01-24T19:01:14Z", + "resourceBehaviorOptions": [], + "resourceProvisioningOptions": [ + "Team" + ], + "securityEnabled": false, + "securityIdentifier": "S-1-12-1-45981654-1196986259-3072312199-363020343", + "theme": null, + "visibility": "Private", + "onPremisesProvisioningErrors": [] +} diff --git a/docs/sources/microsoft-365/outlook-cal/example-api-responses/original/user.json b/docs/sources/microsoft-365/outlook-cal/example-api-responses/original/user.json new file mode 100644 index 0000000000..411a52ac11 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-cal/example-api-responses/original/user.json @@ -0,0 +1,23 @@ +{ + "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity", + "businessPhones": [ + "+1 412 555 0109" + ], + "displayName": "Megan Bowen", + "givenName": "Megan", + "jobTitle": "Auditor", + "mail": "MeganB@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "12/1110", + "preferredLanguage": "en-US", + "surname": "Bowen", + "userPrincipalName": "MeganB@M365x214355.onmicrosoft.com", + "id": "48d31887-5fad-4d73-a9f5-3c356e68a038", + "otherMails": [ + "megan@gmail.com" + ], + "proxyAddresses": [ + "SMTP:MeganB@M365x214355.onmicrosoft.com", + "smtp:megan@M365x214355.onmicrosoft.com" + ] +} diff --git a/docs/sources/microsoft-365/outlook-cal/example-api-responses/original/users.json b/docs/sources/microsoft-365/outlook-cal/example-api-responses/original/users.json new file mode 100644 index 0000000000..2ee428f33c --- /dev/null +++ b/docs/sources/microsoft-365/outlook-cal/example-api-responses/original/users.json @@ -0,0 +1,88 @@ +{ + "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users", + "value": [ + { + "id": "cdfb873d-61f9-4656-bbbb-9e49fba4de97", + "businessPhones": [ + "555555555" + ], + "displayName": "Alice Warren", + "givenName": "Alice", + "jobTitle": null, + "mail": "Alice@worklytics.onmicrosoft.com", + "mobilePhone": "+1 5555555555", + "officeLocation": null, + "preferredLanguage": "en-US", + "surname": "Warren", + "userPrincipalName": "Alice@worklytics.onmicrosoft.com", + "otherMails": [ + "Alice@gmail.com" + ], + "proxyAddresses": [ + "SMTP:Alice@worklytics.onmicrosoft.com", + "smtp:Alice.Warren@worklytics.onmicrosoft.com" + ] + }, + { + "id": "307ee26b-fe96-40a9-bc8a-9e49fba4de97", + "businessPhones": [], + "displayName": "EU Example", + "givenName": "EU", + "jobTitle": null, + "mail": "eu.example@worklytics.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": null, + "preferredLanguage": null, + "surname": "Example", + "userPrincipalName": "eu.example@worklytics.onmicrosoft.com" + }, + { + "id": "4ea7fc01-0264-4e84-b85e-9e49fba4de97", + "businessPhones": [], + "displayName": "john Laurens", + "givenName": "john", + "jobTitle": null, + "mail": "john@worklytics.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": null, + "preferredLanguage": "en-US", + "surname": "Laurens", + "userPrincipalName": "john@worklytics.onmicrosoft.com" + }, + { + "id": "219435cc-746e-48d6-8ccd-242345234f6e", + "businessPhones": [], + "displayName": "Lois Alberto", + "givenName": "Luis", + "jobTitle": null, + "mail": "luis@worklytics.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": null, + "preferredLanguage": "es-ES", + "surname": "Alberto", + "userPrincipalName": "luis@worklytics.onmicrosoft.com" + }, + { + "id": "f8f2864c-c353-4471-bd75-9e49fba4de97", + "businessPhones": [], + "displayName": "Paul Allen", + "givenName": "Paul", + "jobTitle": null, + "mail": "Paul@worklytics.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": null, + "preferredLanguage": "en-US", + "surname": "Allen", + "userPrincipalName": "Paul@worklytics.onmicrosoft.com" + }, + { + "businessPhones": [], + "jobTitle": null, + "mail": null, + "officeLocation": null, + "preferredLanguage": null, + "userPrincipalName": "no-mail-example@worklytics.onmicrosoft.com", + "id": "232442306-9942-4750-a708-4a1e4fe8a879" + } + ] +} diff --git a/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/Event_v1.0.json b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/Event_v1.0.json index c291135b72..dfbd4289c0 100644 --- a/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/Event_v1.0.json +++ b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/Event_v1.0.json @@ -1,5 +1,4 @@ { - "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users('48d31887-5fad-4d73-a9f5-3c356e68a038')/events/$entity", "@odata.etag":"W/\"IiLKjG2I7E+Xv0+ys6MD0wAEDgUUPw==\"", "id":"AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e-T7KzowPTAAAAAAENAAAiIsqMbYjsT5e-T7KzowPTAAAa_WKzAAA=", "createdDateTime":"2017-09-08T06:00:28.8891194Z", diff --git a/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/group-members.json b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/group-members.json new file mode 100644 index 0000000000..9e86c4368c --- /dev/null +++ b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/group-members.json @@ -0,0 +1,61 @@ +{ + "value":[ + { + "id":"87d349ed-44d7-43e1-9a83-5f2406dee5bd" + }, + { + "id":"626cbf8c-5dde-46b0-8385-9e40d64736fe" + }, + { + "id":"40079818-3808-4585-903b-02605f061225" + }, + { + "id":"074e56ea-0b50-4461-89e5-c67ae14a2c0b" + }, + { + "id":"16cfe710-1625-4806-9990-91b8f0afee35" + }, + { + "id":"089a6bb8-e8cb-492c-aa41-c078aa0b5120" + }, + { + "id":"2804bc07-1e1f-4938-9085-ce6d756a32d2" + }, + { + "id":"b66ecf79-a093-4d51-86e0-efcc4531f37a" + }, + { + "id":"8b209ac8-08ff-4ef1-896d-3b9fde0bbf04" + }, + { + "id":"4782e723-f4f4-4af3-a76e-25e3bab0d896" + }, + { + "id":"08fa38e4-cbfa-4488-94ed-c834da6539df" + }, + { + "id":"24fcbca3-c3e2-48bf-9ffc-c7f81b81483d" + }, + { + "id":"2ed03dfd-01d8-4005-a9ef-fa8ee546dc6c" + }, + { + "id":"df043ff1-49d5-414e-86a4-0c7f239c36cf" + }, + { + "id":"ec63c778-24e1-4240-bea3-d12a167d5232" + }, + { + "id":"48d31887-5fad-4d73-a9f5-3c356e68a038" + }, + { + "id":"e8a02cc7-df4d-4778-956d-784cc9506e5a" + }, + { + "id":"c8913c86-ceea-4d39-b1ea-f63a5b675166" + }, + { + "id":"e3d0513b-449e-4198-ba6f-bd97ae7cae85" + } + ] +} diff --git a/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/group.json b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/group.json new file mode 100644 index 0000000000..ed69c28467 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/group.json @@ -0,0 +1,4 @@ +{ + "id":"02bd9fd6-8f93-4758-87c3-1fb73740a315", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"fTO4QfBNOhWw3GVNW6CBnOEGcXqa--EgnerUt-o_xu0\",\"original\":\"HRTaskforce@M365x214355.onmicrosoft.com\"}" +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/user.json b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/user.json new file mode 100644 index 0000000000..031b4af1d0 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/user.json @@ -0,0 +1,11 @@ +{ + "mail":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "id":"48d31887-5fad-4d73-a9f5-3c356e68a038", + "otherMails":[ + "t~9hOtJuGJwqk4-lnsJ2csmTnmD9R_Y28iXox85gjemWU@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "smtp:t~xEWytalm5eilwjtWlbLarIaLtc_2Uw2qisSK3j33RaQ@M365x214355.onmicrosoft.com" + ] +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/users.json b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/users.json new file mode 100644 index 0000000000..bd5aed8bd1 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized/users.json @@ -0,0 +1,35 @@ +{ + "value":[ + { + "id":"cdfb873d-61f9-4656-bbbb-9e49fba4de97", + "mail":"t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "otherMails":[ + "t~DE__fI7lKDU-e4_ZTA7yZpj7Vu5cQ7jQbQE9h8aU5zg@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "smtp:t~EkwwRg8vVk-IkHkgeBVG2gILwkBgVGjJTAYcD5RDpho@worklytics.onmicrosoft.com" + ] + }, + { + "id":"307ee26b-fe96-40a9-bc8a-9e49fba4de97", + "mail":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com" + }, + { + "id":"4ea7fc01-0264-4e84-b85e-9e49fba4de97", + "mail":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com" + }, + { + "id":"219435cc-746e-48d6-8ccd-242345234f6e", + "mail":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com" + }, + { + "id":"f8f2864c-c353-4471-bd75-9e49fba4de97", + "mail":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com" + }, + { + "mail":null, + "id":"232442306-9942-4750-a708-4a1e4fe8a879" + } + ] +} diff --git a/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids/group-members.json b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids/group-members.json new file mode 100644 index 0000000000..35dba6d2b5 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids/group-members.json @@ -0,0 +1,61 @@ +{ + "value":[ + { + "id":"t~GIahqS6f7LWgiuhAm2FdsUTe3olu5_uafg6X_8R1Xds" + }, + { + "id":"t~cplqU6hWOUbCg3UfhVk2QABkcsecsN8KCVi4qnM4OlI" + }, + { + "id":"t~IFewU17rYP9y7Dkh0bDVL8cMyWVpt-CTayNlHHKajcY" + }, + { + "id":"t~QC-C6MuaU0214ZD6FERUEhBU0x0cg8f0cUfxo74Z7iY" + }, + { + "id":"t~hnJxHR_Zu53MxFq1gk9Ct2wFmBQyI6Axcc9h1GjGXO0" + }, + { + "id":"t~3Nli-HcRM7g89KfEIAXOL-nxrnyZDsHg_sPwDza2om8" + }, + { + "id":"t~_AEvyAEMlTxwyr6_9iAVIru2HY9kTaYx3NBKpPNKS4I" + }, + { + "id":"t~AIcnSwThMfVJG54wk-odWt5Tas8gt2A6kIxcfFKPzW4" + }, + { + "id":"t~mtT2SNV67gswDrIF2dK_W9WhOVuQ9lloClrZceeRwlU" + }, + { + "id":"t~ZpIwxk2Kn6FA9HPiOwwGSaN1N4WSHdKljkFwaWNLzbI" + }, + { + "id":"t~jQjKvY0jYpVpJCN9PnvDguGh5nRPZsqbneXXr74SGKs" + }, + { + "id":"t~N46OA7d0UIy2Kgd1z81gfKancHTCCAlDmAo5TsUU4ZM" + }, + { + "id":"t~hRMaT4czSy_QaP1uk20pPT-mWZw2nDCPe00BSPTvC_M" + }, + { + "id":"t~X9cdaHS5FbIXQstPZLKaKh6xp0WiHoIhfNsvb4r8cms" + }, + { + "id":"t~j1EdfIpu_era1uG9onG6DJxA_2ZMoQHkNWtA9Gr-aks" + }, + { + "id":"t~SIoJOpeSgYF7YUPQ28IWZexVuHyN9A80SJXrbfawKpA" + }, + { + "id":"t~8SUlSe462WgVOD2z7GSX7Sc7P_2sNVyHGDyjDRvtQUo" + }, + { + "id":"t~XWT0ikgm6JrPXRckTOl6XJNvAgKXNqF02HBMGIjEkAA" + }, + { + "id":"t~4nCzUj3pqoVcGUgm-r1HzWo0PO51s2SSdrBrJlwSJck" + } + ] +} diff --git a/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids/group.json b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids/group.json new file mode 100644 index 0000000000..7809938ed4 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids/group.json @@ -0,0 +1,4 @@ +{ + "id": "02bd9fd6-8f93-4758-87c3-1fb73740a315", + "mail": "{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"fTO4QfBNOhWw3GVNW6CBnOEGcXqa--EgnerUt-o_xu0\",\"original\":\"HRTaskforce@M365x214355.onmicrosoft.com\"}" +} diff --git a/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids/user.json b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids/user.json new file mode 100644 index 0000000000..fde9992ae6 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids/user.json @@ -0,0 +1,11 @@ +{ + "mail":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "id":"p~SIoJOpeSgYF7YUPQ28IWZexVuHyN9A80SJXrbfawKpDRcddGnKI4QDKyjQI9KtjJZDb8FZ27UE_toS68FyWz7Y22fnQYLP91SHJGVwQiN3E", + "otherMails":[ + "t~9hOtJuGJwqk4-lnsJ2csmTnmD9R_Y28iXox85gjemWU@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "smtp:t~xEWytalm5eilwjtWlbLarIaLtc_2Uw2qisSK3j33RaQ@M365x214355.onmicrosoft.com" + ] +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids/users.json b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids/users.json new file mode 100644 index 0000000000..a60c003f8c --- /dev/null +++ b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids/users.json @@ -0,0 +1,35 @@ +{ + "value":[ + { + "id":"p~bFDzUA6DcTb6Jc4bDJ4UDkZwq_lK0Ob5TJA0h6E_6UmQ_EQgmQCK_TdrApUV5q-PZaA9i28Oitm-X6bYa8iwQSNV1qzposKfzSfm7JN860o", + "mail":"t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "otherMails":[ + "t~DE__fI7lKDU-e4_ZTA7yZpj7Vu5cQ7jQbQE9h8aU5zg@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "smtp:t~EkwwRg8vVk-IkHkgeBVG2gILwkBgVGjJTAYcD5RDpho@worklytics.onmicrosoft.com" + ] + }, + { + "id":"p~olwC_FZa24BttFSG87T2U-fJybmzdHj6SMc7LxV4zOm0oLvgEDHxSVdAUvflsZfNPyGZt4MDy8hyxOZP9VHyJpfDnlVva0m1ElQ-WrRUjxM", + "mail":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com" + }, + { + "id":"p~CBRYQdohf24wt2ERzO_2CUZ1D7HWgla01CtX9RnFgko9_YX4INCm3pJZDkOYr_wJHHXNWuFYA5yKMQ0GOunQ_yECslrs_0kt_P_0uAUlKes", + "mail":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com" + }, + { + "id":"p~11O1eqpq2vEzigY-HlCb5svil7cXxmuDhaMTaj86mLDZA43zB4KsiYB6d56uPZYidcBB96tOU2AfhbhLQbbhqAvLsaPaOgMj64f71eMQHc0", + "mail":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com" + }, + { + "id":"p~kOTAg44Qv8HSvYWG7niJEq_fPTSFm1vHKYfVhmrS221C1HOmCt8kkL376bc8842blh7-oAvtkYr2dK5dFhDDaMs_TWiVje9MvvyyZE6JI7E", + "mail":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com" + }, + { + "mail":null, + "id":"p~xU2vGhAEBHegciOlP1Oz2bRY1_OkAY-GO2VY7FGQU5tc-5pDPeQYr4dh1Xrkbl1dmx1pyWCN8R3C-tWSXv_7DNDELLFYYHtX6FiIDjdLDaw" + } + ] +} diff --git a/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids_no-groups/user.json b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids_no-groups/user.json new file mode 100644 index 0000000000..fde9992ae6 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids_no-groups/user.json @@ -0,0 +1,11 @@ +{ + "mail":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "id":"p~SIoJOpeSgYF7YUPQ28IWZexVuHyN9A80SJXrbfawKpDRcddGnKI4QDKyjQI9KtjJZDb8FZ27UE_toS68FyWz7Y22fnQYLP91SHJGVwQiN3E", + "otherMails":[ + "t~9hOtJuGJwqk4-lnsJ2csmTnmD9R_Y28iXox85gjemWU@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "smtp:t~xEWytalm5eilwjtWlbLarIaLtc_2Uw2qisSK3j33RaQ@M365x214355.onmicrosoft.com" + ] +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids_no-groups/users.json b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids_no-groups/users.json new file mode 100644 index 0000000000..a60c003f8c --- /dev/null +++ b/docs/sources/microsoft-365/outlook-cal/example-api-responses/sanitized_no-app-ids_no-groups/users.json @@ -0,0 +1,35 @@ +{ + "value":[ + { + "id":"p~bFDzUA6DcTb6Jc4bDJ4UDkZwq_lK0Ob5TJA0h6E_6UmQ_EQgmQCK_TdrApUV5q-PZaA9i28Oitm-X6bYa8iwQSNV1qzposKfzSfm7JN860o", + "mail":"t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "otherMails":[ + "t~DE__fI7lKDU-e4_ZTA7yZpj7Vu5cQ7jQbQE9h8aU5zg@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "smtp:t~EkwwRg8vVk-IkHkgeBVG2gILwkBgVGjJTAYcD5RDpho@worklytics.onmicrosoft.com" + ] + }, + { + "id":"p~olwC_FZa24BttFSG87T2U-fJybmzdHj6SMc7LxV4zOm0oLvgEDHxSVdAUvflsZfNPyGZt4MDy8hyxOZP9VHyJpfDnlVva0m1ElQ-WrRUjxM", + "mail":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com" + }, + { + "id":"p~CBRYQdohf24wt2ERzO_2CUZ1D7HWgla01CtX9RnFgko9_YX4INCm3pJZDkOYr_wJHHXNWuFYA5yKMQ0GOunQ_yECslrs_0kt_P_0uAUlKes", + "mail":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com" + }, + { + "id":"p~11O1eqpq2vEzigY-HlCb5svil7cXxmuDhaMTaj86mLDZA43zB4KsiYB6d56uPZYidcBB96tOU2AfhbhLQbbhqAvLsaPaOgMj64f71eMQHc0", + "mail":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com" + }, + { + "id":"p~kOTAg44Qv8HSvYWG7niJEq_fPTSFm1vHKYfVhmrS221C1HOmCt8kkL376bc8842blh7-oAvtkYr2dK5dFhDDaMs_TWiVje9MvvyyZE6JI7E", + "mail":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com" + }, + { + "mail":null, + "id":"p~xU2vGhAEBHegciOlP1Oz2bRY1_OkAY-GO2VY7FGQU5tc-5pDPeQYr4dh1Xrkbl1dmx1pyWCN8R3C-tWSXv_7DNDELLFYYHtX6FiIDjdLDaw" + } + ] +} diff --git a/docs/sources/microsoft-365/outlook-cal/outlook-cal.yaml b/docs/sources/microsoft-365/outlook-cal/outlook-cal.yaml index d8be8bfb09..6d8b3c0af3 100644 --- a/docs/sources/microsoft-365/outlook-cal/outlook-cal.yaml +++ b/docs/sources/microsoft-365/outlook-cal/outlook-cal.yaml @@ -1,38 +1,61 @@ --- endpoints: - - pathRegex: "^/v1.0/users/?[^/]*" + - pathRegex: "^/v1.0/groups/?(\\?.*)?$" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..mail" + includeOriginal: true + encoding: "JSON" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphGroup" + - pathRegex: "^/v1.0/groups/[^/?]+(\\?.*)?$" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..mail" + includeOriginal: true + encoding: "JSON" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + id: + type: "string" + mail: + type: "string" + - pathRegex: "^/v1.0/groups/[^/]*/members.*" allowedQueryParams: - "$top" - "$select" - "$skiptoken" - "$orderBy" - "$count" - - "$filter" allowedRequestHeaders: - "ConsistencyLevel" transforms: - - ! - jsonPaths: - - "$..proxyAddresses[*]" - regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" - ! jsonPaths: - "$..employeeId" @@ -46,66 +69,98 @@ endpoints: - "$..onPremisesImmutableId" - "$..identities[*].issuerAssignedId" encoding: "URL_SAFE_TOKEN" - - pathRegex: "^/v1.0/groups/?[^/]*" - allowedRequestHeaders: - - "ConsistencyLevel" - transforms: - ! jsonPaths: - "$..proxyAddresses[*]" regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..owners" - - "$..rejectedSenders" - - "$..acceptedSenders" - - "$..members" - - "$..membersWithLicenseErrors" - - "$..mailNickname" - - "$..description" - - "$..resourceBehaviorOptions" - - "$..resourceProvisioningOptions" - - "$..onPremisesSamAccountName" - - "$..onPremisesSecurityIdentifier" - - "$..onPremisesProvisioningErrors" - - "$..securityIdentifier" - - ! - jsonPaths: - - "$..mail" - includeOriginal: true - encoding: "JSON" - - pathRegex: "^/v1.0/groups/[^/]*/members.*" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphGroupMember" + - pathRegex: "^/v1.0/users/?(\\?.*)?$" allowedQueryParams: - "$top" - "$select" - "$skiptoken" - "$orderBy" - "$count" + - "$filter" allowedRequestHeaders: - "ConsistencyLevel" transforms: + - ! + jsonPaths: + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" - ! jsonPaths: - "$..proxyAddresses[*]" regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphUser" + - pathRegex: "^/v1.0/users/?[^/]*/mailboxSettings(\\?.*)?$" + transforms: - ! jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" + - "$..['@odata.context']" + responseSchema: + type: "object" + properties: + '@odata.context': + type: "string" + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + - pathRegex: "^/v1.0/users/[^/?]+(\\?.*)?$" + allowedQueryParams: + - "$select" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: - ! jsonPaths: - "$..employeeId" @@ -119,17 +174,65 @@ endpoints: - "$..onPremisesImmutableId" - "$..identities[*].issuerAssignedId" encoding: "URL_SAFE_TOKEN" - - pathRegex: "^/v1.0/users/?[^/]*/mailboxSettings" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" + - pathRegex: "^/v1.0/users/[^/]*/(((calendars/[^/]*/)?events(\\?.*)?)|(calendar/calendarView(?)[^/]*))" transforms: - - ! + - ! jsonPaths: - - "$..internalReplyMessage" - - "$..externalReplyMessage" - - ! + - "$..emailAddress.address" + encoding: "URL_SAFE_TOKEN" + - ! jsonPaths: - - "$..['@odata.context']" - - pathRegex: "^/v1.0/users/[^/]*/(((calendars/[^/]*/)?events.*)|(calendar/calendarView(?)[^/]*))" - transforms: + - "$..body.content" + - "$..bodyPreview" + delimiter: "\\s+" + filters: + - "https://[^.]+\\.zoom\\.us/.*" + - ! + jsonPaths: + - "$..location.uniqueId" + - "$..locations[*].uniqueId" + - "$..location.displayName" + - "$..locations[*].displayName" + - "$..location.locationUri" + - "$..locations[*].locationUri" + - "$..onlineMeeting.joinUrl" + - "$..onlineMeetingUrl" + - "$..body.content" + - "$..bodyPreview" + redactions: + - "(?i)pwd=[^&]*" - ! jsonPaths: - "$..subject" @@ -187,24 +290,34 @@ endpoints: - "retro" - "review" - "sprint" - - ! - jsonPaths: - - "$..reminderMinutesBeforeStart" - - "$..isReminderOn" - - "$..allowNewTimeProposals" - - "$..transactionId" - - "$..emailAddress.name" - - "$..extensions" - - "$..multiValueExtendedProperties" - - "$..singleValueExtendedProperties" - - "$..location.coordinates" - - "$..locations[*].coordinates" - - "$..location.address" - - "$..locations[*].address" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.context': + type: "string" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/Event" + - pathRegex: "^/v1.0/users/[^/]*/events/[^/?]+(\\?.*)?$" + transforms: - ! jsonPaths: - "$..emailAddress.address" encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..body.content" + - "$..bodyPreview" + delimiter: "\\s+" + filters: + - "https://[^.]+\\.zoom\\.us/.*" - ! jsonPaths: - "$..location.uniqueId" @@ -219,10 +332,508 @@ endpoints: - "$..bodyPreview" redactions: - "(?i)pwd=[^&]*" - - ! + - ! jsonPaths: - - "$..body.content" - - "$..bodyPreview" - delimiter: "\\s+" - filters: - - "https://[^.]+\\.zoom\\.us/.*" + - "$..subject" + allowedPhrases: + - "Focus Time" + - "Focus" + - "No Meetings" + - "No Meeting" + - "no mtg" + - "Prep" + - "OOO" + - "Out of Office" + - "Out of the Office" + - "call" + - "brainstorm" + - "brainstorming" + - "brain storm" + - "check in" + - "check-in" + - "checkin" + - "coffee" + - "food" + - "happy hour" + - "lunch" + - "office hours" + - "onsite" + - "on-site" + - "social" + - "stand up" + - "stand-up" + - "standup" + - "team building" + - "teambuilding" + - "daily" + - "bi-weekly" + - "biweekly" + - "weekly" + - "monthly" + - "quarterly" + - "1:1" + - "1-on-1" + - "one-on-one" + - "all-hands" + - "all hands" + - "allhands" + - "team meeting" + - "decision making" + - "decision" + - "hand off" + - "hand-off" + - "handoff" + - "handover" + - "information sharing" + - "problem solving" + - "retro" + - "review" + - "sprint" + responseSchema: + type: "object" + properties: + '@odata.etag': + type: "string" + attachments: + type: "array" + items: + $ref: "#/definitions/Attachment" + attendees: + type: "array" + items: + $ref: "#/definitions/Attendee" + body: + $ref: "#/definitions/ItemBody" + bodyPreview: + type: "string" + calendar: + $ref: "#/definitions/Calendar" + calendar@odata.associationLink: + type: "string" + calendar@odata.navigationLink: + type: "string" + categories: + type: "array" + items: + type: "string" + changeKey: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + end: + $ref: "#/definitions/DateTimeTimeZone" + hasAttachments: + type: "boolean" + hideAttendees: + type: "boolean" + iCalUId: + type: "string" + id: + type: "string" + importance: + type: "string" + isAllDay: + type: "boolean" + isCancelled: + type: "boolean" + isDraft: + type: "boolean" + isOnlineMeeting: + type: "boolean" + isOrganizer: + type: "boolean" + lastModifiedDateTime: + type: "string" + format: "date-time" + location: + $ref: "#/definitions/Location" + locations: + type: "array" + items: + $ref: "#/definitions/Location" + occurrenceId: + type: "string" + onlineMeeting: + $ref: "#/definitions/OnlineMeetingInfo" + onlineMeetingProvider: + type: "string" + onlineMeetingUrl: + type: "string" + organizer: + $ref: "#/definitions/Recipient" + originalEndTimeZone: + type: "string" + originalStartTimeZone: + type: "string" + recurrence: + $ref: "#/definitions/PatternedRecurrence" + responseRequested: + type: "boolean" + responseStatus: + $ref: "#/definitions/ResponseStatus" + sensitivity: + type: "string" + seriesMasterId: + type: "string" + showAs: + type: "string" + start: + $ref: "#/definitions/DateTimeTimeZone" + subject: + type: "string" + type: + type: "string" + uid: + type: "string" + webLink: + type: "string" + workItemId: + type: "string" +definitions: + Attachment: + type: "object" + properties: + size: + type: "integer" + Attendee: + type: "object" + properties: + emailAddress: + $ref: "#/definitions/EmailAddress" + proposedNewTime: + $ref: "#/definitions/ProposedNewTime" + status: + $ref: "#/definitions/ResponseStatus" + type: + type: "string" + AutomaticRepliesSettings: + type: "object" + properties: + externalAudience: + type: "string" + scheduledEndDateTime: + $ref: "#/definitions/DateTimeTimeZone" + scheduledStartDateTime: + $ref: "#/definitions/DateTimeTimeZone" + status: + type: "string" + Calendar: + type: "object" + properties: + id: + type: "string" + CustomTimeZone: + type: "object" + properties: + '@odata.type': + type: "string" + bias: + type: "integer" + daylightOffset: + $ref: "#/definitions/Offset" + name: + type: "string" + standardOffset: + $ref: "#/definitions/Offset" + DateTimeTimeZone: + type: "object" + properties: + dateTime: + type: "string" + format: "date-time" + timeZone: + type: "string" + timeZoneIANA: + type: "string" + EmailAddress: + type: "object" + properties: + address: + type: "string" + Event: + type: "object" + properties: + '@odata.etag': + type: "string" + attachments: + type: "array" + items: + $ref: "#/definitions/Attachment" + attendees: + type: "array" + items: + $ref: "#/definitions/Attendee" + body: + $ref: "#/definitions/ItemBody" + bodyPreview: + type: "string" + calendar: + $ref: "#/definitions/Calendar" + calendar@odata.associationLink: + type: "string" + calendar@odata.navigationLink: + type: "string" + categories: + type: "array" + items: + type: "string" + changeKey: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + end: + $ref: "#/definitions/DateTimeTimeZone" + hasAttachments: + type: "boolean" + hideAttendees: + type: "boolean" + iCalUId: + type: "string" + id: + type: "string" + importance: + type: "string" + isAllDay: + type: "boolean" + isCancelled: + type: "boolean" + isDraft: + type: "boolean" + isOnlineMeeting: + type: "boolean" + isOrganizer: + type: "boolean" + lastModifiedDateTime: + type: "string" + format: "date-time" + location: + $ref: "#/definitions/Location" + locations: + type: "array" + items: + $ref: "#/definitions/Location" + occurrenceId: + type: "string" + onlineMeeting: + $ref: "#/definitions/OnlineMeetingInfo" + onlineMeetingProvider: + type: "string" + onlineMeetingUrl: + type: "string" + organizer: + $ref: "#/definitions/Recipient" + originalEndTimeZone: + type: "string" + originalStartTimeZone: + type: "string" + recurrence: + $ref: "#/definitions/PatternedRecurrence" + responseRequested: + type: "boolean" + responseStatus: + $ref: "#/definitions/ResponseStatus" + sensitivity: + type: "string" + seriesMasterId: + type: "string" + showAs: + type: "string" + start: + $ref: "#/definitions/DateTimeTimeZone" + subject: + type: "string" + type: + type: "string" + uid: + type: "string" + webLink: + type: "string" + workItemId: + type: "string" + GraphGroup: + type: "object" + properties: + id: + type: "string" + mail: + type: "string" + GraphGroupMember: + type: "object" + properties: + id: + type: "string" + GraphUser: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" + ItemBody: + type: "object" + properties: + content: + type: "string" + contentType: + type: "string" + LocaleInfo: + type: "object" + properties: + displayName: + type: "string" + locale: + type: "string" + Location: + type: "object" + properties: + displayName: + type: "string" + locationType: + type: "string" + locationUri: + type: "string" + uniqueId: + type: "string" + uniqueIdType: + type: "string" + MailboxSettings: + type: "object" + properties: + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + Offset: + type: "object" + properties: + dayOccurrence: + type: "integer" + dayOfWeek: + type: "string" + daylightBias: + type: "integer" + month: + type: "integer" + time: + type: "string" + year: + type: "integer" + OnlineMeetingInfo: + type: "object" + properties: + conferenceId: + type: "string" + joinUrl: + type: "string" + PatternedRecurrence: + type: "object" + properties: + pattern: + $ref: "#/definitions/RecurrencePattern" + range: + $ref: "#/definitions/RecurrenceRange" + ProposedNewTime: + type: "object" + properties: + end: + $ref: "#/definitions/DateTimeTimeZone" + start: + $ref: "#/definitions/DateTimeTimeZone" + Recipient: + type: "object" + properties: + emailAddress: + $ref: "#/definitions/EmailAddress" + RecurrencePattern: + type: "object" + properties: + dayOfMonth: + type: "integer" + daysOfWeek: + type: "array" + items: + type: "string" + firstDayOfWeek: + type: "string" + index: + type: "string" + interval: + type: "integer" + month: + type: "integer" + type: + type: "string" + RecurrenceRange: + type: "object" + properties: + endDate: + type: "string" + numberOfOccurrences: + type: "integer" + recurrenceTimeZone: + type: "string" + startDate: + type: "string" + type: + type: "string" + ResponseStatus: + type: "object" + properties: + response: + type: "string" + time: + type: "string" + format: "date-time" + WorkingHours: + type: "object" + properties: + daysOfWeek: + type: "array" + items: + type: "string" + endTime: + type: "string" + format: "time" + startTime: + type: "string" + format: "time" + timeZone: + anyOf: + - $ref: "#/definitions/CustomTimeZone" diff --git a/docs/sources/microsoft-365/outlook-cal/outlook-cal_no-app-ids.yaml b/docs/sources/microsoft-365/outlook-cal/outlook-cal_no-app-ids.yaml index e6763c3a99..dbfb1658cf 100644 --- a/docs/sources/microsoft-365/outlook-cal/outlook-cal_no-app-ids.yaml +++ b/docs/sources/microsoft-365/outlook-cal/outlook-cal_no-app-ids.yaml @@ -1,84 +1,51 @@ --- endpoints: - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*" - allowedQueryParams: - - "$top" - - "$select" - - "$skiptoken" - - "$orderBy" - - "$count" - - "$filter" + - pathRegex: "^/v1.0/groups/?(\\?.*)?$" allowedRequestHeaders: - "ConsistencyLevel" transforms: - - ! - jsonPaths: - - "$..proxyAddresses[*]" - regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" - ! jsonPaths: - - "$..employeeId" - - "$..userPrincipalName" - - "$..imAddresses[*]" - "$..mail" - - "$..otherMails[*]" - - "$..onPremisesSamAccountName" - - "$..onPremisesUserPrincipalName" - - "$..onPremisesDistinguishedName" - - "$..onPremisesImmutableId" - - "$..identities[*].issuerAssignedId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..id" - includeReversible: true - encoding: "URL_SAFE_TOKEN" - - pathRegex: "^/v1.0/groups/?[^/]*" - allowedRequestHeaders: - - "ConsistencyLevel" - transforms: + includeOriginal: true + encoding: "JSON" - ! jsonPaths: - "$..proxyAddresses[*]" regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..owners" - - "$..rejectedSenders" - - "$..acceptedSenders" - - "$..members" - - "$..membersWithLicenseErrors" - - "$..mailNickname" - - "$..description" - - "$..resourceBehaviorOptions" - - "$..resourceProvisioningOptions" - - "$..onPremisesSamAccountName" - - "$..onPremisesSecurityIdentifier" - - "$..onPremisesProvisioningErrors" - - "$..securityIdentifier" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphGroup" + - pathRegex: "^/v1.0/groups/[^/?]+(\\?.*)?$" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: - ! jsonPaths: - "$..mail" includeOriginal: true encoding: "JSON" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + id: + type: "string" + mail: + type: "string" - pathRegex: "^/v1.0/groups/[^/]*/members.*" allowedQueryParams: - "$top" @@ -89,28 +56,6 @@ endpoints: allowedRequestHeaders: - "ConsistencyLevel" transforms: - - ! - jsonPaths: - - "$..proxyAddresses[*]" - regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" - ! jsonPaths: - "$..employeeId" @@ -128,17 +73,61 @@ endpoints: jsonPaths: - "$..id" encoding: "URL_SAFE_TOKEN" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/mailboxSettings" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphGroupMember" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/(((calendars/[^/]*/)?events(\\\ + ?.*)?)|(calendar/calendarView(?)[^/]*))" transforms: - - ! + - ! + jsonPaths: + - "$..emailAddress.address" + encoding: "URL_SAFE_TOKEN" + - ! jsonPaths: - - "$..internalReplyMessage" - - "$..externalReplyMessage" + - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" + regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" - ! jsonPaths: - "$..['@odata.context']" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/(((calendars/[^/]*/)?events.*)|(calendar/calendarView(?)[^/]*))" - transforms: + - ! + jsonPaths: + - "$..['calendar@odata.associationLink', 'calendar@odata.navigationLink']" + - ! + jsonPaths: + - "$..body.content" + - "$..bodyPreview" + delimiter: "\\s+" + filters: + - "https://[^.]+\\.zoom\\.us/.*" + - ! + jsonPaths: + - "$..location.uniqueId" + - "$..locations[*].uniqueId" + - "$..location.displayName" + - "$..locations[*].displayName" + - "$..location.locationUri" + - "$..locations[*].locationUri" + - "$..onlineMeeting.joinUrl" + - "$..onlineMeetingUrl" + - "$..body.content" + - "$..bodyPreview" + redactions: + - "(?i)pwd=[^&]*" - ! jsonPaths: - "$..subject" @@ -196,24 +185,44 @@ endpoints: - "retro" - "review" - "sprint" - - ! - jsonPaths: - - "$..reminderMinutesBeforeStart" - - "$..isReminderOn" - - "$..allowNewTimeProposals" - - "$..transactionId" - - "$..emailAddress.name" - - "$..extensions" - - "$..multiValueExtendedProperties" - - "$..singleValueExtendedProperties" - - "$..location.coordinates" - - "$..locations[*].coordinates" - - "$..location.address" - - "$..locations[*].address" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.context': + type: "string" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/Event" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/events/[^/?]+(\\?.*)?$" + transforms: - ! jsonPaths: - "$..emailAddress.address" encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" + regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" + - ! + jsonPaths: + - "$..['@odata.context']" + - ! + jsonPaths: + - "$..['calendar@odata.associationLink', 'calendar@odata.navigationLink']" + - ! + jsonPaths: + - "$..body.content" + - "$..bodyPreview" + delimiter: "\\s+" + filters: + - "https://[^.]+\\.zoom\\.us/.*" - ! jsonPaths: - "$..location.uniqueId" @@ -228,20 +237,638 @@ endpoints: - "$..bodyPreview" redactions: - "(?i)pwd=[^&]*" - - ! - jsonPaths: - - "$..body.content" - - "$..bodyPreview" - delimiter: "\\s+" - filters: - - "https://[^.]+\\.zoom\\.us/.*" - - ! + - ! jsonPaths: - - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" - regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" + - "$..subject" + allowedPhrases: + - "Focus Time" + - "Focus" + - "No Meetings" + - "No Meeting" + - "no mtg" + - "Prep" + - "OOO" + - "Out of Office" + - "Out of the Office" + - "call" + - "brainstorm" + - "brainstorming" + - "brain storm" + - "check in" + - "check-in" + - "checkin" + - "coffee" + - "food" + - "happy hour" + - "lunch" + - "office hours" + - "onsite" + - "on-site" + - "social" + - "stand up" + - "stand-up" + - "standup" + - "team building" + - "teambuilding" + - "daily" + - "bi-weekly" + - "biweekly" + - "weekly" + - "monthly" + - "quarterly" + - "1:1" + - "1-on-1" + - "one-on-one" + - "all-hands" + - "all hands" + - "allhands" + - "team meeting" + - "decision making" + - "decision" + - "hand off" + - "hand-off" + - "handoff" + - "handover" + - "information sharing" + - "problem solving" + - "retro" + - "review" + - "sprint" + responseSchema: + type: "object" + properties: + '@odata.etag': + type: "string" + attachments: + type: "array" + items: + $ref: "#/definitions/Attachment" + attendees: + type: "array" + items: + $ref: "#/definitions/Attendee" + body: + $ref: "#/definitions/ItemBody" + bodyPreview: + type: "string" + calendar: + $ref: "#/definitions/Calendar" + calendar@odata.associationLink: + type: "string" + calendar@odata.navigationLink: + type: "string" + categories: + type: "array" + items: + type: "string" + changeKey: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + end: + $ref: "#/definitions/DateTimeTimeZone" + hasAttachments: + type: "boolean" + hideAttendees: + type: "boolean" + iCalUId: + type: "string" + id: + type: "string" + importance: + type: "string" + isAllDay: + type: "boolean" + isCancelled: + type: "boolean" + isDraft: + type: "boolean" + isOnlineMeeting: + type: "boolean" + isOrganizer: + type: "boolean" + lastModifiedDateTime: + type: "string" + format: "date-time" + location: + $ref: "#/definitions/Location" + locations: + type: "array" + items: + $ref: "#/definitions/Location" + occurrenceId: + type: "string" + onlineMeeting: + $ref: "#/definitions/OnlineMeetingInfo" + onlineMeetingProvider: + type: "string" + onlineMeetingUrl: + type: "string" + organizer: + $ref: "#/definitions/Recipient" + originalEndTimeZone: + type: "string" + originalStartTimeZone: + type: "string" + recurrence: + $ref: "#/definitions/PatternedRecurrence" + responseRequested: + type: "boolean" + responseStatus: + $ref: "#/definitions/ResponseStatus" + sensitivity: + type: "string" + seriesMasterId: + type: "string" + showAs: + type: "string" + start: + $ref: "#/definitions/DateTimeTimeZone" + subject: + type: "string" + type: + type: "string" + uid: + type: "string" + webLink: + type: "string" + workItemId: + type: "string" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/mailboxSettings(\\?.*)?$" + transforms: - ! jsonPaths: - "$..['@odata.context']" - - ! + responseSchema: + type: "object" + properties: + '@odata.context': + type: "string" + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + - pathRegex: "^/v1.0/users(\\?.*)?$" + allowedQueryParams: + - "$top" + - "$select" + - "$skiptoken" + - "$orderBy" + - "$count" + - "$filter" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! jsonPaths: - - "$..['calendar@odata.associationLink', 'calendar@odata.navigationLink']" + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..id" + includeReversible: true + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphUser" + - pathRegex: "^/v1.0/users/p~[a-zA-Z0-9_-]+(\\?.*)?$" + allowedQueryParams: + - "$select" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..id" + includeReversible: true + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" +definitions: + Attachment: + type: "object" + properties: + size: + type: "integer" + Attendee: + type: "object" + properties: + emailAddress: + $ref: "#/definitions/EmailAddress" + proposedNewTime: + $ref: "#/definitions/ProposedNewTime" + status: + $ref: "#/definitions/ResponseStatus" + type: + type: "string" + AutomaticRepliesSettings: + type: "object" + properties: + externalAudience: + type: "string" + scheduledEndDateTime: + $ref: "#/definitions/DateTimeTimeZone" + scheduledStartDateTime: + $ref: "#/definitions/DateTimeTimeZone" + status: + type: "string" + Calendar: + type: "object" + properties: + id: + type: "string" + CustomTimeZone: + type: "object" + properties: + '@odata.type': + type: "string" + bias: + type: "integer" + daylightOffset: + $ref: "#/definitions/Offset" + name: + type: "string" + standardOffset: + $ref: "#/definitions/Offset" + DateTimeTimeZone: + type: "object" + properties: + dateTime: + type: "string" + format: "date-time" + timeZone: + type: "string" + timeZoneIANA: + type: "string" + EmailAddress: + type: "object" + properties: + address: + type: "string" + Event: + type: "object" + properties: + '@odata.etag': + type: "string" + attachments: + type: "array" + items: + $ref: "#/definitions/Attachment" + attendees: + type: "array" + items: + $ref: "#/definitions/Attendee" + body: + $ref: "#/definitions/ItemBody" + bodyPreview: + type: "string" + calendar: + $ref: "#/definitions/Calendar" + calendar@odata.associationLink: + type: "string" + calendar@odata.navigationLink: + type: "string" + categories: + type: "array" + items: + type: "string" + changeKey: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + end: + $ref: "#/definitions/DateTimeTimeZone" + hasAttachments: + type: "boolean" + hideAttendees: + type: "boolean" + iCalUId: + type: "string" + id: + type: "string" + importance: + type: "string" + isAllDay: + type: "boolean" + isCancelled: + type: "boolean" + isDraft: + type: "boolean" + isOnlineMeeting: + type: "boolean" + isOrganizer: + type: "boolean" + lastModifiedDateTime: + type: "string" + format: "date-time" + location: + $ref: "#/definitions/Location" + locations: + type: "array" + items: + $ref: "#/definitions/Location" + occurrenceId: + type: "string" + onlineMeeting: + $ref: "#/definitions/OnlineMeetingInfo" + onlineMeetingProvider: + type: "string" + onlineMeetingUrl: + type: "string" + organizer: + $ref: "#/definitions/Recipient" + originalEndTimeZone: + type: "string" + originalStartTimeZone: + type: "string" + recurrence: + $ref: "#/definitions/PatternedRecurrence" + responseRequested: + type: "boolean" + responseStatus: + $ref: "#/definitions/ResponseStatus" + sensitivity: + type: "string" + seriesMasterId: + type: "string" + showAs: + type: "string" + start: + $ref: "#/definitions/DateTimeTimeZone" + subject: + type: "string" + type: + type: "string" + uid: + type: "string" + webLink: + type: "string" + workItemId: + type: "string" + GraphGroup: + type: "object" + properties: + id: + type: "string" + mail: + type: "string" + GraphGroupMember: + type: "object" + properties: + id: + type: "string" + GraphUser: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" + ItemBody: + type: "object" + properties: + content: + type: "string" + contentType: + type: "string" + LocaleInfo: + type: "object" + properties: + displayName: + type: "string" + locale: + type: "string" + Location: + type: "object" + properties: + displayName: + type: "string" + locationType: + type: "string" + locationUri: + type: "string" + uniqueId: + type: "string" + uniqueIdType: + type: "string" + MailboxSettings: + type: "object" + properties: + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + Offset: + type: "object" + properties: + dayOccurrence: + type: "integer" + dayOfWeek: + type: "string" + daylightBias: + type: "integer" + month: + type: "integer" + time: + type: "string" + year: + type: "integer" + OnlineMeetingInfo: + type: "object" + properties: + conferenceId: + type: "string" + joinUrl: + type: "string" + PatternedRecurrence: + type: "object" + properties: + pattern: + $ref: "#/definitions/RecurrencePattern" + range: + $ref: "#/definitions/RecurrenceRange" + ProposedNewTime: + type: "object" + properties: + end: + $ref: "#/definitions/DateTimeTimeZone" + start: + $ref: "#/definitions/DateTimeTimeZone" + Recipient: + type: "object" + properties: + emailAddress: + $ref: "#/definitions/EmailAddress" + RecurrencePattern: + type: "object" + properties: + dayOfMonth: + type: "integer" + daysOfWeek: + type: "array" + items: + type: "string" + firstDayOfWeek: + type: "string" + index: + type: "string" + interval: + type: "integer" + month: + type: "integer" + type: + type: "string" + RecurrenceRange: + type: "object" + properties: + endDate: + type: "string" + numberOfOccurrences: + type: "integer" + recurrenceTimeZone: + type: "string" + startDate: + type: "string" + type: + type: "string" + ResponseStatus: + type: "object" + properties: + response: + type: "string" + time: + type: "string" + format: "date-time" + WorkingHours: + type: "object" + properties: + daysOfWeek: + type: "array" + items: + type: "string" + endTime: + type: "string" + format: "time" + startTime: + type: "string" + format: "time" + timeZone: + anyOf: + - $ref: "#/definitions/CustomTimeZone" diff --git a/docs/sources/microsoft-365/outlook-cal/outlook-cal_no-app-ids_no-groups.yaml b/docs/sources/microsoft-365/outlook-cal/outlook-cal_no-app-ids_no-groups.yaml index e664cb4a33..d87c7aa0c3 100644 --- a/docs/sources/microsoft-365/outlook-cal/outlook-cal_no-app-ids_no-groups.yaml +++ b/docs/sources/microsoft-365/outlook-cal/outlook-cal_no-app-ids_no-groups.yaml @@ -1,67 +1,43 @@ --- endpoints: - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*" - allowedQueryParams: - - "$top" - - "$select" - - "$skiptoken" - - "$orderBy" - - "$count" - - "$filter" - allowedRequestHeaders: - - "ConsistencyLevel" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/(((calendars/[^/]*/)?events(\\\ + ?.*)?)|(calendar/calendarView(?)[^/]*))" transforms: - - ! - jsonPaths: - - "$..proxyAddresses[*]" - regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" - ! jsonPaths: - - "$..employeeId" - - "$..userPrincipalName" - - "$..imAddresses[*]" - - "$..mail" - - "$..otherMails[*]" - - "$..onPremisesSamAccountName" - - "$..onPremisesUserPrincipalName" - - "$..onPremisesDistinguishedName" - - "$..onPremisesImmutableId" - - "$..identities[*].issuerAssignedId" + - "$..emailAddress.address" encoding: "URL_SAFE_TOKEN" - - ! + - ! jsonPaths: - - "$..id" - includeReversible: true - encoding: "URL_SAFE_TOKEN" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/mailboxSettings" - transforms: + - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" + regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" - ! jsonPaths: - - "$..internalReplyMessage" - - "$..externalReplyMessage" + - "$..['@odata.context']" - ! jsonPaths: - - "$..['@odata.context']" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/(((calendars/[^/]*/)?events.*)|(calendar/calendarView(?)[^/]*))" - transforms: + - "$..['calendar@odata.associationLink', 'calendar@odata.navigationLink']" + - ! + jsonPaths: + - "$..body.content" + - "$..bodyPreview" + delimiter: "\\s+" + filters: + - "https://[^.]+\\.zoom\\.us/.*" + - ! + jsonPaths: + - "$..location.uniqueId" + - "$..locations[*].uniqueId" + - "$..location.displayName" + - "$..locations[*].displayName" + - "$..location.locationUri" + - "$..locations[*].locationUri" + - "$..onlineMeeting.joinUrl" + - "$..onlineMeetingUrl" + - "$..body.content" + - "$..bodyPreview" + redactions: + - "(?i)pwd=[^&]*" - ! jsonPaths: - "$..subject" @@ -119,24 +95,44 @@ endpoints: - "retro" - "review" - "sprint" - - ! - jsonPaths: - - "$..reminderMinutesBeforeStart" - - "$..isReminderOn" - - "$..allowNewTimeProposals" - - "$..transactionId" - - "$..emailAddress.name" - - "$..extensions" - - "$..multiValueExtendedProperties" - - "$..singleValueExtendedProperties" - - "$..location.coordinates" - - "$..locations[*].coordinates" - - "$..location.address" - - "$..locations[*].address" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.context': + type: "string" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/Event" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/events/[^/?]+(\\?.*)?$" + transforms: - ! jsonPaths: - "$..emailAddress.address" encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" + regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" + - ! + jsonPaths: + - "$..['@odata.context']" + - ! + jsonPaths: + - "$..['calendar@odata.associationLink', 'calendar@odata.navigationLink']" + - ! + jsonPaths: + - "$..body.content" + - "$..bodyPreview" + delimiter: "\\s+" + filters: + - "https://[^.]+\\.zoom\\.us/.*" - ! jsonPaths: - "$..location.uniqueId" @@ -151,20 +147,626 @@ endpoints: - "$..bodyPreview" redactions: - "(?i)pwd=[^&]*" - - ! - jsonPaths: - - "$..body.content" - - "$..bodyPreview" - delimiter: "\\s+" - filters: - - "https://[^.]+\\.zoom\\.us/.*" - - ! + - ! jsonPaths: - - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" - regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" + - "$..subject" + allowedPhrases: + - "Focus Time" + - "Focus" + - "No Meetings" + - "No Meeting" + - "no mtg" + - "Prep" + - "OOO" + - "Out of Office" + - "Out of the Office" + - "call" + - "brainstorm" + - "brainstorming" + - "brain storm" + - "check in" + - "check-in" + - "checkin" + - "coffee" + - "food" + - "happy hour" + - "lunch" + - "office hours" + - "onsite" + - "on-site" + - "social" + - "stand up" + - "stand-up" + - "standup" + - "team building" + - "teambuilding" + - "daily" + - "bi-weekly" + - "biweekly" + - "weekly" + - "monthly" + - "quarterly" + - "1:1" + - "1-on-1" + - "one-on-one" + - "all-hands" + - "all hands" + - "allhands" + - "team meeting" + - "decision making" + - "decision" + - "hand off" + - "hand-off" + - "handoff" + - "handover" + - "information sharing" + - "problem solving" + - "retro" + - "review" + - "sprint" + responseSchema: + type: "object" + properties: + '@odata.etag': + type: "string" + attachments: + type: "array" + items: + $ref: "#/definitions/Attachment" + attendees: + type: "array" + items: + $ref: "#/definitions/Attendee" + body: + $ref: "#/definitions/ItemBody" + bodyPreview: + type: "string" + calendar: + $ref: "#/definitions/Calendar" + calendar@odata.associationLink: + type: "string" + calendar@odata.navigationLink: + type: "string" + categories: + type: "array" + items: + type: "string" + changeKey: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + end: + $ref: "#/definitions/DateTimeTimeZone" + hasAttachments: + type: "boolean" + hideAttendees: + type: "boolean" + iCalUId: + type: "string" + id: + type: "string" + importance: + type: "string" + isAllDay: + type: "boolean" + isCancelled: + type: "boolean" + isDraft: + type: "boolean" + isOnlineMeeting: + type: "boolean" + isOrganizer: + type: "boolean" + lastModifiedDateTime: + type: "string" + format: "date-time" + location: + $ref: "#/definitions/Location" + locations: + type: "array" + items: + $ref: "#/definitions/Location" + occurrenceId: + type: "string" + onlineMeeting: + $ref: "#/definitions/OnlineMeetingInfo" + onlineMeetingProvider: + type: "string" + onlineMeetingUrl: + type: "string" + organizer: + $ref: "#/definitions/Recipient" + originalEndTimeZone: + type: "string" + originalStartTimeZone: + type: "string" + recurrence: + $ref: "#/definitions/PatternedRecurrence" + responseRequested: + type: "boolean" + responseStatus: + $ref: "#/definitions/ResponseStatus" + sensitivity: + type: "string" + seriesMasterId: + type: "string" + showAs: + type: "string" + start: + $ref: "#/definitions/DateTimeTimeZone" + subject: + type: "string" + type: + type: "string" + uid: + type: "string" + webLink: + type: "string" + workItemId: + type: "string" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/mailboxSettings(\\?.*)?$" + transforms: - ! jsonPaths: - "$..['@odata.context']" - - ! + responseSchema: + type: "object" + properties: + '@odata.context': + type: "string" + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + - pathRegex: "^/v1.0/users(\\?.*)?$" + allowedQueryParams: + - "$top" + - "$select" + - "$skiptoken" + - "$orderBy" + - "$count" + - "$filter" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! jsonPaths: - - "$..['calendar@odata.associationLink', 'calendar@odata.navigationLink']" + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..id" + includeReversible: true + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphUser" + - pathRegex: "^/v1.0/users/p~[a-zA-Z0-9_-]+(\\?.*)?$" + allowedQueryParams: + - "$select" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..id" + includeReversible: true + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" +definitions: + Attachment: + type: "object" + properties: + size: + type: "integer" + Attendee: + type: "object" + properties: + emailAddress: + $ref: "#/definitions/EmailAddress" + proposedNewTime: + $ref: "#/definitions/ProposedNewTime" + status: + $ref: "#/definitions/ResponseStatus" + type: + type: "string" + AutomaticRepliesSettings: + type: "object" + properties: + externalAudience: + type: "string" + scheduledEndDateTime: + $ref: "#/definitions/DateTimeTimeZone" + scheduledStartDateTime: + $ref: "#/definitions/DateTimeTimeZone" + status: + type: "string" + Calendar: + type: "object" + properties: + id: + type: "string" + CustomTimeZone: + type: "object" + properties: + '@odata.type': + type: "string" + bias: + type: "integer" + daylightOffset: + $ref: "#/definitions/Offset" + name: + type: "string" + standardOffset: + $ref: "#/definitions/Offset" + DateTimeTimeZone: + type: "object" + properties: + dateTime: + type: "string" + format: "date-time" + timeZone: + type: "string" + timeZoneIANA: + type: "string" + EmailAddress: + type: "object" + properties: + address: + type: "string" + Event: + type: "object" + properties: + '@odata.etag': + type: "string" + attachments: + type: "array" + items: + $ref: "#/definitions/Attachment" + attendees: + type: "array" + items: + $ref: "#/definitions/Attendee" + body: + $ref: "#/definitions/ItemBody" + bodyPreview: + type: "string" + calendar: + $ref: "#/definitions/Calendar" + calendar@odata.associationLink: + type: "string" + calendar@odata.navigationLink: + type: "string" + categories: + type: "array" + items: + type: "string" + changeKey: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + end: + $ref: "#/definitions/DateTimeTimeZone" + hasAttachments: + type: "boolean" + hideAttendees: + type: "boolean" + iCalUId: + type: "string" + id: + type: "string" + importance: + type: "string" + isAllDay: + type: "boolean" + isCancelled: + type: "boolean" + isDraft: + type: "boolean" + isOnlineMeeting: + type: "boolean" + isOrganizer: + type: "boolean" + lastModifiedDateTime: + type: "string" + format: "date-time" + location: + $ref: "#/definitions/Location" + locations: + type: "array" + items: + $ref: "#/definitions/Location" + occurrenceId: + type: "string" + onlineMeeting: + $ref: "#/definitions/OnlineMeetingInfo" + onlineMeetingProvider: + type: "string" + onlineMeetingUrl: + type: "string" + organizer: + $ref: "#/definitions/Recipient" + originalEndTimeZone: + type: "string" + originalStartTimeZone: + type: "string" + recurrence: + $ref: "#/definitions/PatternedRecurrence" + responseRequested: + type: "boolean" + responseStatus: + $ref: "#/definitions/ResponseStatus" + sensitivity: + type: "string" + seriesMasterId: + type: "string" + showAs: + type: "string" + start: + $ref: "#/definitions/DateTimeTimeZone" + subject: + type: "string" + type: + type: "string" + uid: + type: "string" + webLink: + type: "string" + workItemId: + type: "string" + GraphUser: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" + ItemBody: + type: "object" + properties: + content: + type: "string" + contentType: + type: "string" + LocaleInfo: + type: "object" + properties: + displayName: + type: "string" + locale: + type: "string" + Location: + type: "object" + properties: + displayName: + type: "string" + locationType: + type: "string" + locationUri: + type: "string" + uniqueId: + type: "string" + uniqueIdType: + type: "string" + MailboxSettings: + type: "object" + properties: + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + Offset: + type: "object" + properties: + dayOccurrence: + type: "integer" + dayOfWeek: + type: "string" + daylightBias: + type: "integer" + month: + type: "integer" + time: + type: "string" + year: + type: "integer" + OnlineMeetingInfo: + type: "object" + properties: + conferenceId: + type: "string" + joinUrl: + type: "string" + PatternedRecurrence: + type: "object" + properties: + pattern: + $ref: "#/definitions/RecurrencePattern" + range: + $ref: "#/definitions/RecurrenceRange" + ProposedNewTime: + type: "object" + properties: + end: + $ref: "#/definitions/DateTimeTimeZone" + start: + $ref: "#/definitions/DateTimeTimeZone" + Recipient: + type: "object" + properties: + emailAddress: + $ref: "#/definitions/EmailAddress" + RecurrencePattern: + type: "object" + properties: + dayOfMonth: + type: "integer" + daysOfWeek: + type: "array" + items: + type: "string" + firstDayOfWeek: + type: "string" + index: + type: "string" + interval: + type: "integer" + month: + type: "integer" + type: + type: "string" + RecurrenceRange: + type: "object" + properties: + endDate: + type: "string" + numberOfOccurrences: + type: "integer" + recurrenceTimeZone: + type: "string" + startDate: + type: "string" + type: + type: "string" + ResponseStatus: + type: "object" + properties: + response: + type: "string" + time: + type: "string" + format: "date-time" + WorkingHours: + type: "object" + properties: + daysOfWeek: + type: "array" + items: + type: "string" + endTime: + type: "string" + format: "time" + startTime: + type: "string" + format: "time" + timeZone: + anyOf: + - $ref: "#/definitions/CustomTimeZone" diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/original/group-members.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/original/group-members.json new file mode 100644 index 0000000000..06acac94b8 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/original/group-members.json @@ -0,0 +1,309 @@ +{ + "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#directoryObjects", + "value": [ + { + "@odata.type": "#microsoft.graph.user", + "id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd", + "businessPhones": [ + "+1 425 555 0109" + ], + "displayName": "Adele Vance", + "givenName": "Adele", + "jobTitle": "Product Marketing Manager", + "mail": "AdeleV@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "18/2111", + "preferredLanguage": "en-US", + "surname": "Vance", + "userPrincipalName": "AdeleV@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "626cbf8c-5dde-46b0-8385-9e40d64736fe", + "businessPhones": [ + "+1 502 555 0102" + ], + "displayName": "Johanna Lorenz", + "givenName": "Johanna", + "jobTitle": "CVP Engineering", + "mail": "JohannaL@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "23/2102", + "preferredLanguage": "en-US", + "surname": "Lorenz", + "userPrincipalName": "JohannaL@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "40079818-3808-4585-903b-02605f061225", + "businessPhones": [ + "+1 502 555 0144" + ], + "displayName": "Patti Fernandez", + "givenName": "Patti", + "jobTitle": "President", + "mail": "PattiF@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "15/1102", + "preferredLanguage": "en-US", + "surname": "Fernandez", + "userPrincipalName": "PattiF@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "074e56ea-0b50-4461-89e5-c67ae14a2c0b", + "businessPhones": [ + "+1 913 555 0101" + ], + "displayName": "Lee Gu", + "givenName": "Lee", + "jobTitle": "CVP Research & Development", + "mail": "LeeG@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "23/3101", + "preferredLanguage": "en-US", + "surname": "Gu", + "userPrincipalName": "LeeG@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "16cfe710-1625-4806-9990-91b8f0afee35", + "businessPhones": [ + "+1 205 555 0103" + ], + "displayName": "Enrico Cattaneo", + "givenName": "Enrico", + "jobTitle": "Attorney", + "mail": "EnricoC@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "14/1102", + "preferredLanguage": "en-US", + "surname": "Cattaneo", + "userPrincipalName": "EnricoC@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "089a6bb8-e8cb-492c-aa41-c078aa0b5120", + "businessPhones": [ + "+1 206 555 0105" + ], + "displayName": "Nestor Wilke", + "givenName": "Nestor", + "jobTitle": "CVP Operations", + "mail": "NestorW@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "36/2121", + "preferredLanguage": "en-US", + "surname": "Wilke", + "userPrincipalName": "NestorW@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "2804bc07-1e1f-4938-9085-ce6d756a32d2", + "businessPhones": [ + "+81 345550115" + ], + "displayName": "Emily Braun", + "givenName": "Emily", + "jobTitle": "Budget Analyst", + "mail": "EmilyB@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "97/2302", + "preferredLanguage": "en-US", + "surname": "Braun", + "userPrincipalName": "EmilyB@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "b66ecf79-a093-4d51-86e0-efcc4531f37a", + "businessPhones": [ + "+1 858 555 0111" + ], + "displayName": "Christie Cline", + "givenName": "Christie", + "jobTitle": "Sr. VP Sales & Marketing", + "mail": "ChristieC@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "131/2105", + "preferredLanguage": "en-US", + "surname": "Cline", + "userPrincipalName": "ChristieC@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "8b209ac8-08ff-4ef1-896d-3b9fde0bbf04", + "businessPhones": [ + "+1 980 555 0101" + ], + "displayName": "Joni Sherman", + "givenName": "Joni", + "jobTitle": "Paralegal", + "mail": "JoniS@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "20/1109", + "preferredLanguage": "en-US", + "surname": "Sherman", + "userPrincipalName": "JoniS@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "4782e723-f4f4-4af3-a76e-25e3bab0d896", + "businessPhones": [ + "+1 858 555 0110" + ], + "displayName": "Alex Wilber", + "givenName": "Alex", + "jobTitle": "Marketing Assistant", + "mail": "AlexW@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "131/1104", + "preferredLanguage": "en-US", + "surname": "Wilber", + "userPrincipalName": "AlexW@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "08fa38e4-cbfa-4488-94ed-c834da6539df", + "businessPhones": [ + "+1 858 555 0109" + ], + "displayName": "Miriam Graham", + "givenName": "Miriam", + "jobTitle": "VP Marketing", + "mail": "MiriamG@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "131/2103", + "preferredLanguage": "en-US", + "surname": "Graham", + "userPrincipalName": "MiriamG@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "24fcbca3-c3e2-48bf-9ffc-c7f81b81483d", + "businessPhones": [ + "+1 205 555 0108" + ], + "displayName": "Diego Siciliani", + "givenName": "Diego", + "jobTitle": "CVP Finance", + "mail": "DiegoS@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "14/1108", + "preferredLanguage": "en-US", + "surname": "Siciliani", + "userPrincipalName": "DiegoS@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "2ed03dfd-01d8-4005-a9ef-fa8ee546dc6c", + "businessPhones": [ + "+1 918 555 0107" + ], + "displayName": "Lidia Holloway", + "givenName": "Lidia", + "jobTitle": "Product Manager", + "mail": "LidiaH@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "20/2107", + "preferredLanguage": "en-US", + "surname": "Holloway", + "userPrincipalName": "LidiaH@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "df043ff1-49d5-414e-86a4-0c7f239c36cf", + "businessPhones": [ + "+1 309 555 0104" + ], + "displayName": "Grady Archie", + "givenName": "Grady", + "jobTitle": "CVP Legal", + "mail": "GradyA@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "19/2109", + "preferredLanguage": "en-US", + "surname": "Archie", + "userPrincipalName": "GradyA@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "ec63c778-24e1-4240-bea3-d12a167d5232", + "businessPhones": [ + "+20 255501070" + ], + "displayName": "Pradeep Gupta", + "givenName": "Pradeep", + "jobTitle": "Accountant II", + "mail": "PradeepG@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "98/2202", + "preferredLanguage": "en-US", + "surname": "Gupta", + "userPrincipalName": "PradeepG@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "48d31887-5fad-4d73-a9f5-3c356e68a038", + "businessPhones": [ + "+1 412 555 0109" + ], + "displayName": "Megan Bowen", + "givenName": "Megan", + "jobTitle": "Auditor", + "mail": "MeganB@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "12/1110", + "preferredLanguage": "en-US", + "surname": "Bowen", + "userPrincipalName": "MeganB@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "e8a02cc7-df4d-4778-956d-784cc9506e5a", + "businessPhones": [ + "+1 918 555 0104" + ], + "displayName": "Lynne Robbins", + "givenName": "Lynne", + "jobTitle": "Product Manager", + "mail": "LynneR@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "20/1104", + "preferredLanguage": "en-US", + "surname": "Robbins", + "userPrincipalName": "LynneR@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "c8913c86-ceea-4d39-b1ea-f63a5b675166", + "businessPhones": [ + "+1 954 555 0118" + ], + "displayName": "Henrietta Mueller", + "givenName": "Henrietta", + "jobTitle": "Marketing Assistant", + "mail": "HenriettaM@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "18/1106", + "preferredLanguage": "en-US", + "surname": "Mueller", + "userPrincipalName": "HenriettaM@M365x214355.onmicrosoft.com" + }, + { + "@odata.type": "#microsoft.graph.user", + "id": "e3d0513b-449e-4198-ba6f-bd97ae7cae85", + "businessPhones": [ + "+1 918 555 0101" + ], + "displayName": "Isaiah Langer", + "givenName": "Isaiah", + "jobTitle": "Web Marketing Manager", + "mail": "IsaiahL@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "20/1101", + "preferredLanguage": "en-US", + "surname": "Langer", + "userPrincipalName": "IsaiahL@M365x214355.onmicrosoft.com" + } + ] +} diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/original/group.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/original/group.json new file mode 100644 index 0000000000..f7b5d42720 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/original/group.json @@ -0,0 +1,44 @@ +{ + "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups/$entity", + "id": "02bd9fd6-8f93-4758-87c3-1fb73740a315", + "deletedDateTime": null, + "classification": null, + "createdDateTime": "2017-07-31T18:56:16Z", + "creationOptions": [ + "ExchangeProvisioningFlags:481" + ], + "description": "Welcome to the HR Taskforce team.", + "displayName": "HR Taskforce", + "expirationDateTime": null, + "groupTypes": [ + "Unified" + ], + "isAssignableToRole": null, + "mail": "HRTaskforce@M365x214355.onmicrosoft.com", + "mailEnabled": true, + "mailNickname": "HRTaskforce", + "membershipRule": null, + "membershipRuleProcessingState": null, + "onPremisesDomainName": null, + "onPremisesLastSyncDateTime": null, + "onPremisesNetBiosName": null, + "onPremisesSamAccountName": null, + "onPremisesSecurityIdentifier": null, + "onPremisesSyncEnabled": null, + "preferredDataLocation": null, + "preferredLanguage": null, + "proxyAddresses": [ + "SMTP:HRTaskforce@M365x214355.onmicrosoft.com", + "SPO:SPO_896cf652-b200-4b74-8111-c013f64406cf@SPO_dcd219dd-bc68-4b9b-bf0b-4a33a796be35" + ], + "renewedDateTime": "2020-01-24T19:01:14Z", + "resourceBehaviorOptions": [], + "resourceProvisioningOptions": [ + "Team" + ], + "securityEnabled": false, + "securityIdentifier": "S-1-12-1-45981654-1196986259-3072312199-363020343", + "theme": null, + "visibility": "Private", + "onPremisesProvisioningErrors": [] +} diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/original/user.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/original/user.json new file mode 100644 index 0000000000..411a52ac11 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/original/user.json @@ -0,0 +1,23 @@ +{ + "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity", + "businessPhones": [ + "+1 412 555 0109" + ], + "displayName": "Megan Bowen", + "givenName": "Megan", + "jobTitle": "Auditor", + "mail": "MeganB@M365x214355.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": "12/1110", + "preferredLanguage": "en-US", + "surname": "Bowen", + "userPrincipalName": "MeganB@M365x214355.onmicrosoft.com", + "id": "48d31887-5fad-4d73-a9f5-3c356e68a038", + "otherMails": [ + "megan@gmail.com" + ], + "proxyAddresses": [ + "SMTP:MeganB@M365x214355.onmicrosoft.com", + "smtp:megan@M365x214355.onmicrosoft.com" + ] +} diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/original/users.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/original/users.json new file mode 100644 index 0000000000..2ee428f33c --- /dev/null +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/original/users.json @@ -0,0 +1,88 @@ +{ + "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users", + "value": [ + { + "id": "cdfb873d-61f9-4656-bbbb-9e49fba4de97", + "businessPhones": [ + "555555555" + ], + "displayName": "Alice Warren", + "givenName": "Alice", + "jobTitle": null, + "mail": "Alice@worklytics.onmicrosoft.com", + "mobilePhone": "+1 5555555555", + "officeLocation": null, + "preferredLanguage": "en-US", + "surname": "Warren", + "userPrincipalName": "Alice@worklytics.onmicrosoft.com", + "otherMails": [ + "Alice@gmail.com" + ], + "proxyAddresses": [ + "SMTP:Alice@worklytics.onmicrosoft.com", + "smtp:Alice.Warren@worklytics.onmicrosoft.com" + ] + }, + { + "id": "307ee26b-fe96-40a9-bc8a-9e49fba4de97", + "businessPhones": [], + "displayName": "EU Example", + "givenName": "EU", + "jobTitle": null, + "mail": "eu.example@worklytics.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": null, + "preferredLanguage": null, + "surname": "Example", + "userPrincipalName": "eu.example@worklytics.onmicrosoft.com" + }, + { + "id": "4ea7fc01-0264-4e84-b85e-9e49fba4de97", + "businessPhones": [], + "displayName": "john Laurens", + "givenName": "john", + "jobTitle": null, + "mail": "john@worklytics.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": null, + "preferredLanguage": "en-US", + "surname": "Laurens", + "userPrincipalName": "john@worklytics.onmicrosoft.com" + }, + { + "id": "219435cc-746e-48d6-8ccd-242345234f6e", + "businessPhones": [], + "displayName": "Lois Alberto", + "givenName": "Luis", + "jobTitle": null, + "mail": "luis@worklytics.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": null, + "preferredLanguage": "es-ES", + "surname": "Alberto", + "userPrincipalName": "luis@worklytics.onmicrosoft.com" + }, + { + "id": "f8f2864c-c353-4471-bd75-9e49fba4de97", + "businessPhones": [], + "displayName": "Paul Allen", + "givenName": "Paul", + "jobTitle": null, + "mail": "Paul@worklytics.onmicrosoft.com", + "mobilePhone": null, + "officeLocation": null, + "preferredLanguage": "en-US", + "surname": "Allen", + "userPrincipalName": "Paul@worklytics.onmicrosoft.com" + }, + { + "businessPhones": [], + "jobTitle": null, + "mail": null, + "officeLocation": null, + "preferredLanguage": null, + "userPrincipalName": "no-mail-example@worklytics.onmicrosoft.com", + "id": "232442306-9942-4750-a708-4a1e4fe8a879" + } + ] +} diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/Message_v1.0.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/Message_v1.0.json index 2d98f7ea1b..283f59f5f5 100644 --- a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/Message_v1.0.json +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/Message_v1.0.json @@ -20,6 +20,13 @@ "isDraft":false, "webLink":"https://outlook.office365.com/owa/?ItemID=AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e%2FT7KzowPTAAAAAAEJAAAiIsqMbYjsT5e%2FT7KzowPTAAQSfAIWAAA%3D&exvsurl=1&viewmodel=ReadMessageItem", "inferenceClassification":"focused", + "body":{ + "contentType":"html", + "+content:textDigest":{ + "length":5908, + "word_count":294 + } + }, "sender":{ "emailAddress":{ "address":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com" @@ -43,4 +50,4 @@ "flag":{ "flagStatus":"notFlagged" } -} \ No newline at end of file +} diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/Messages_SentItems_v1.0.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/Messages_SentItems_v1.0.json index d3db079001..b1e3fe6a7a 100644 --- a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/Messages_SentItems_v1.0.json +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/Messages_SentItems_v1.0.json @@ -22,6 +22,13 @@ "isDraft":false, "webLink":"https://outlook.office365.com/owa/?ItemID=AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e%2FT7KzowPTAAAAAAEJAAAiIsqMbYjsT5e%2FT7KzowPTAAQSfAIWAAA%3D&exvsurl=1&viewmodel=ReadMessageItem", "inferenceClassification":"focused", + "body":{ + "contentType":"html", + "+content:textDigest":{ + "length":5908, + "word_count":294 + } + }, "sender":{ "emailAddress":{ "address":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com" @@ -47,4 +54,4 @@ } } ] -} \ No newline at end of file +} diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/group-members.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/group-members.json new file mode 100644 index 0000000000..9e86c4368c --- /dev/null +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/group-members.json @@ -0,0 +1,61 @@ +{ + "value":[ + { + "id":"87d349ed-44d7-43e1-9a83-5f2406dee5bd" + }, + { + "id":"626cbf8c-5dde-46b0-8385-9e40d64736fe" + }, + { + "id":"40079818-3808-4585-903b-02605f061225" + }, + { + "id":"074e56ea-0b50-4461-89e5-c67ae14a2c0b" + }, + { + "id":"16cfe710-1625-4806-9990-91b8f0afee35" + }, + { + "id":"089a6bb8-e8cb-492c-aa41-c078aa0b5120" + }, + { + "id":"2804bc07-1e1f-4938-9085-ce6d756a32d2" + }, + { + "id":"b66ecf79-a093-4d51-86e0-efcc4531f37a" + }, + { + "id":"8b209ac8-08ff-4ef1-896d-3b9fde0bbf04" + }, + { + "id":"4782e723-f4f4-4af3-a76e-25e3bab0d896" + }, + { + "id":"08fa38e4-cbfa-4488-94ed-c834da6539df" + }, + { + "id":"24fcbca3-c3e2-48bf-9ffc-c7f81b81483d" + }, + { + "id":"2ed03dfd-01d8-4005-a9ef-fa8ee546dc6c" + }, + { + "id":"df043ff1-49d5-414e-86a4-0c7f239c36cf" + }, + { + "id":"ec63c778-24e1-4240-bea3-d12a167d5232" + }, + { + "id":"48d31887-5fad-4d73-a9f5-3c356e68a038" + }, + { + "id":"e8a02cc7-df4d-4778-956d-784cc9506e5a" + }, + { + "id":"c8913c86-ceea-4d39-b1ea-f63a5b675166" + }, + { + "id":"e3d0513b-449e-4198-ba6f-bd97ae7cae85" + } + ] +} diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/group.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/group.json new file mode 100644 index 0000000000..ed69c28467 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/group.json @@ -0,0 +1,4 @@ +{ + "id":"02bd9fd6-8f93-4758-87c3-1fb73740a315", + "mail":"{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"fTO4QfBNOhWw3GVNW6CBnOEGcXqa--EgnerUt-o_xu0\",\"original\":\"HRTaskforce@M365x214355.onmicrosoft.com\"}" +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/user.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/user.json new file mode 100644 index 0000000000..031b4af1d0 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/user.json @@ -0,0 +1,11 @@ +{ + "mail":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "id":"48d31887-5fad-4d73-a9f5-3c356e68a038", + "otherMails":[ + "t~9hOtJuGJwqk4-lnsJ2csmTnmD9R_Y28iXox85gjemWU@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "smtp:t~xEWytalm5eilwjtWlbLarIaLtc_2Uw2qisSK3j33RaQ@M365x214355.onmicrosoft.com" + ] +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/users.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/users.json new file mode 100644 index 0000000000..bd5aed8bd1 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized/users.json @@ -0,0 +1,35 @@ +{ + "value":[ + { + "id":"cdfb873d-61f9-4656-bbbb-9e49fba4de97", + "mail":"t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "otherMails":[ + "t~DE__fI7lKDU-e4_ZTA7yZpj7Vu5cQ7jQbQE9h8aU5zg@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "smtp:t~EkwwRg8vVk-IkHkgeBVG2gILwkBgVGjJTAYcD5RDpho@worklytics.onmicrosoft.com" + ] + }, + { + "id":"307ee26b-fe96-40a9-bc8a-9e49fba4de97", + "mail":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com" + }, + { + "id":"4ea7fc01-0264-4e84-b85e-9e49fba4de97", + "mail":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com" + }, + { + "id":"219435cc-746e-48d6-8ccd-242345234f6e", + "mail":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com" + }, + { + "id":"f8f2864c-c353-4471-bd75-9e49fba4de97", + "mail":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com" + }, + { + "mail":null, + "id":"232442306-9942-4750-a708-4a1e4fe8a879" + } + ] +} diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/Message_v1.0.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/Message_v1.0.json index 10202c4be9..6b26570b5e 100644 --- a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/Message_v1.0.json +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/Message_v1.0.json @@ -19,6 +19,13 @@ "isDraft":false, "webLink":"https://outlook.office365.com/owa/?ItemID=AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e%2FT7KzowPTAAAAAAEJAAAiIsqMbYjsT5e%2FT7KzowPTAAQSfAIWAAA%3D&exvsurl=1&viewmodel=ReadMessageItem", "inferenceClassification":"focused", + "body":{ + "contentType":"html", + "+content:textDigest":{ + "length":5908, + "word_count":294 + } + }, "sender":{ "emailAddress":{ "address":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com" @@ -42,4 +49,4 @@ "flag":{ "flagStatus":"notFlagged" } -} \ No newline at end of file +} diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/Messages_SentItems_v1.0.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/Messages_SentItems_v1.0.json index d0d50f2efe..d93fa39a31 100644 --- a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/Messages_SentItems_v1.0.json +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/Messages_SentItems_v1.0.json @@ -21,6 +21,13 @@ "isDraft":false, "webLink":"https://outlook.office365.com/owa/?ItemID=AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e%2FT7KzowPTAAAAAAEJAAAiIsqMbYjsT5e%2FT7KzowPTAAQSfAIWAAA%3D&exvsurl=1&viewmodel=ReadMessageItem", "inferenceClassification":"focused", + "body":{ + "contentType":"html", + "+content:textDigest":{ + "length":5908, + "word_count":294 + } + }, "sender":{ "emailAddress":{ "address":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com" @@ -46,4 +53,4 @@ } } ] -} \ No newline at end of file +} diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/group-members.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/group-members.json new file mode 100644 index 0000000000..35dba6d2b5 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/group-members.json @@ -0,0 +1,61 @@ +{ + "value":[ + { + "id":"t~GIahqS6f7LWgiuhAm2FdsUTe3olu5_uafg6X_8R1Xds" + }, + { + "id":"t~cplqU6hWOUbCg3UfhVk2QABkcsecsN8KCVi4qnM4OlI" + }, + { + "id":"t~IFewU17rYP9y7Dkh0bDVL8cMyWVpt-CTayNlHHKajcY" + }, + { + "id":"t~QC-C6MuaU0214ZD6FERUEhBU0x0cg8f0cUfxo74Z7iY" + }, + { + "id":"t~hnJxHR_Zu53MxFq1gk9Ct2wFmBQyI6Axcc9h1GjGXO0" + }, + { + "id":"t~3Nli-HcRM7g89KfEIAXOL-nxrnyZDsHg_sPwDza2om8" + }, + { + "id":"t~_AEvyAEMlTxwyr6_9iAVIru2HY9kTaYx3NBKpPNKS4I" + }, + { + "id":"t~AIcnSwThMfVJG54wk-odWt5Tas8gt2A6kIxcfFKPzW4" + }, + { + "id":"t~mtT2SNV67gswDrIF2dK_W9WhOVuQ9lloClrZceeRwlU" + }, + { + "id":"t~ZpIwxk2Kn6FA9HPiOwwGSaN1N4WSHdKljkFwaWNLzbI" + }, + { + "id":"t~jQjKvY0jYpVpJCN9PnvDguGh5nRPZsqbneXXr74SGKs" + }, + { + "id":"t~N46OA7d0UIy2Kgd1z81gfKancHTCCAlDmAo5TsUU4ZM" + }, + { + "id":"t~hRMaT4czSy_QaP1uk20pPT-mWZw2nDCPe00BSPTvC_M" + }, + { + "id":"t~X9cdaHS5FbIXQstPZLKaKh6xp0WiHoIhfNsvb4r8cms" + }, + { + "id":"t~j1EdfIpu_era1uG9onG6DJxA_2ZMoQHkNWtA9Gr-aks" + }, + { + "id":"t~SIoJOpeSgYF7YUPQ28IWZexVuHyN9A80SJXrbfawKpA" + }, + { + "id":"t~8SUlSe462WgVOD2z7GSX7Sc7P_2sNVyHGDyjDRvtQUo" + }, + { + "id":"t~XWT0ikgm6JrPXRckTOl6XJNvAgKXNqF02HBMGIjEkAA" + }, + { + "id":"t~4nCzUj3pqoVcGUgm-r1HzWo0PO51s2SSdrBrJlwSJck" + } + ] +} diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/group.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/group.json new file mode 100644 index 0000000000..7809938ed4 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/group.json @@ -0,0 +1,4 @@ +{ + "id": "02bd9fd6-8f93-4758-87c3-1fb73740a315", + "mail": "{\"domain\":\"M365x214355.onmicrosoft.com\",\"hash\":\"fTO4QfBNOhWw3GVNW6CBnOEGcXqa--EgnerUt-o_xu0\",\"original\":\"HRTaskforce@M365x214355.onmicrosoft.com\"}" +} diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/user.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/user.json new file mode 100644 index 0000000000..fde9992ae6 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/user.json @@ -0,0 +1,11 @@ +{ + "mail":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "id":"p~SIoJOpeSgYF7YUPQ28IWZexVuHyN9A80SJXrbfawKpDRcddGnKI4QDKyjQI9KtjJZDb8FZ27UE_toS68FyWz7Y22fnQYLP91SHJGVwQiN3E", + "otherMails":[ + "t~9hOtJuGJwqk4-lnsJ2csmTnmD9R_Y28iXox85gjemWU@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "smtp:t~xEWytalm5eilwjtWlbLarIaLtc_2Uw2qisSK3j33RaQ@M365x214355.onmicrosoft.com" + ] +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/users.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/users.json new file mode 100644 index 0000000000..a60c003f8c --- /dev/null +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids/users.json @@ -0,0 +1,35 @@ +{ + "value":[ + { + "id":"p~bFDzUA6DcTb6Jc4bDJ4UDkZwq_lK0Ob5TJA0h6E_6UmQ_EQgmQCK_TdrApUV5q-PZaA9i28Oitm-X6bYa8iwQSNV1qzposKfzSfm7JN860o", + "mail":"t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "otherMails":[ + "t~DE__fI7lKDU-e4_ZTA7yZpj7Vu5cQ7jQbQE9h8aU5zg@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "smtp:t~EkwwRg8vVk-IkHkgeBVG2gILwkBgVGjJTAYcD5RDpho@worklytics.onmicrosoft.com" + ] + }, + { + "id":"p~olwC_FZa24BttFSG87T2U-fJybmzdHj6SMc7LxV4zOm0oLvgEDHxSVdAUvflsZfNPyGZt4MDy8hyxOZP9VHyJpfDnlVva0m1ElQ-WrRUjxM", + "mail":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com" + }, + { + "id":"p~CBRYQdohf24wt2ERzO_2CUZ1D7HWgla01CtX9RnFgko9_YX4INCm3pJZDkOYr_wJHHXNWuFYA5yKMQ0GOunQ_yECslrs_0kt_P_0uAUlKes", + "mail":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com" + }, + { + "id":"p~11O1eqpq2vEzigY-HlCb5svil7cXxmuDhaMTaj86mLDZA43zB4KsiYB6d56uPZYidcBB96tOU2AfhbhLQbbhqAvLsaPaOgMj64f71eMQHc0", + "mail":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com" + }, + { + "id":"p~kOTAg44Qv8HSvYWG7niJEq_fPTSFm1vHKYfVhmrS221C1HOmCt8kkL376bc8842blh7-oAvtkYr2dK5dFhDDaMs_TWiVje9MvvyyZE6JI7E", + "mail":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com" + }, + { + "mail":null, + "id":"p~xU2vGhAEBHegciOlP1Oz2bRY1_OkAY-GO2VY7FGQU5tc-5pDPeQYr4dh1Xrkbl1dmx1pyWCN8R3C-tWSXv_7DNDELLFYYHtX6FiIDjdLDaw" + } + ] +} diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids_no-groups/Message_v1.0.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids_no-groups/Message_v1.0.json index 10202c4be9..6b26570b5e 100644 --- a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids_no-groups/Message_v1.0.json +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids_no-groups/Message_v1.0.json @@ -19,6 +19,13 @@ "isDraft":false, "webLink":"https://outlook.office365.com/owa/?ItemID=AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e%2FT7KzowPTAAAAAAEJAAAiIsqMbYjsT5e%2FT7KzowPTAAQSfAIWAAA%3D&exvsurl=1&viewmodel=ReadMessageItem", "inferenceClassification":"focused", + "body":{ + "contentType":"html", + "+content:textDigest":{ + "length":5908, + "word_count":294 + } + }, "sender":{ "emailAddress":{ "address":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com" @@ -42,4 +49,4 @@ "flag":{ "flagStatus":"notFlagged" } -} \ No newline at end of file +} diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids_no-groups/Messages_SentItems_v1.0.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids_no-groups/Messages_SentItems_v1.0.json index d0d50f2efe..d93fa39a31 100644 --- a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids_no-groups/Messages_SentItems_v1.0.json +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids_no-groups/Messages_SentItems_v1.0.json @@ -21,6 +21,13 @@ "isDraft":false, "webLink":"https://outlook.office365.com/owa/?ItemID=AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e%2FT7KzowPTAAAAAAEJAAAiIsqMbYjsT5e%2FT7KzowPTAAQSfAIWAAA%3D&exvsurl=1&viewmodel=ReadMessageItem", "inferenceClassification":"focused", + "body":{ + "contentType":"html", + "+content:textDigest":{ + "length":5908, + "word_count":294 + } + }, "sender":{ "emailAddress":{ "address":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com" @@ -46,4 +53,4 @@ } } ] -} \ No newline at end of file +} diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids_no-groups/user.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids_no-groups/user.json new file mode 100644 index 0000000000..fde9992ae6 --- /dev/null +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids_no-groups/user.json @@ -0,0 +1,11 @@ +{ + "mail":"t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "id":"p~SIoJOpeSgYF7YUPQ28IWZexVuHyN9A80SJXrbfawKpDRcddGnKI4QDKyjQI9KtjJZDb8FZ27UE_toS68FyWz7Y22fnQYLP91SHJGVwQiN3E", + "otherMails":[ + "t~9hOtJuGJwqk4-lnsJ2csmTnmD9R_Y28iXox85gjemWU@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~aUhZDS0Tjei4n0wfbt9bej85CgpSsYc73vYezVh5mVg@M365x214355.onmicrosoft.com", + "smtp:t~xEWytalm5eilwjtWlbLarIaLtc_2Uw2qisSK3j33RaQ@M365x214355.onmicrosoft.com" + ] +} \ No newline at end of file diff --git a/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids_no-groups/users.json b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids_no-groups/users.json new file mode 100644 index 0000000000..a60c003f8c --- /dev/null +++ b/docs/sources/microsoft-365/outlook-mail/example-api-responses/sanitized_no-app-ids_no-groups/users.json @@ -0,0 +1,35 @@ +{ + "value":[ + { + "id":"p~bFDzUA6DcTb6Jc4bDJ4UDkZwq_lK0Ob5TJA0h6E_6UmQ_EQgmQCK_TdrApUV5q-PZaA9i28Oitm-X6bYa8iwQSNV1qzposKfzSfm7JN860o", + "mail":"t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "otherMails":[ + "t~DE__fI7lKDU-e4_ZTA7yZpj7Vu5cQ7jQbQE9h8aU5zg@gmail.com" + ], + "proxyAddresses":[ + "SMTP:t~80OuLKaSEacbENaFngf3v1Ul1rcs-6BmJRZsfb9scss@worklytics.onmicrosoft.com", + "smtp:t~EkwwRg8vVk-IkHkgeBVG2gILwkBgVGjJTAYcD5RDpho@worklytics.onmicrosoft.com" + ] + }, + { + "id":"p~olwC_FZa24BttFSG87T2U-fJybmzdHj6SMc7LxV4zOm0oLvgEDHxSVdAUvflsZfNPyGZt4MDy8hyxOZP9VHyJpfDnlVva0m1ElQ-WrRUjxM", + "mail":"t~8ooPMu_uHiLVL-w_T7gTwJDA4S_ttDhB93_NhIXfkkE@worklytics.onmicrosoft.com" + }, + { + "id":"p~CBRYQdohf24wt2ERzO_2CUZ1D7HWgla01CtX9RnFgko9_YX4INCm3pJZDkOYr_wJHHXNWuFYA5yKMQ0GOunQ_yECslrs_0kt_P_0uAUlKes", + "mail":"t~QKF0JFDeWizMmaAamuk9jwtDKUqh_xFG4etyOOHcrEA@worklytics.onmicrosoft.com" + }, + { + "id":"p~11O1eqpq2vEzigY-HlCb5svil7cXxmuDhaMTaj86mLDZA43zB4KsiYB6d56uPZYidcBB96tOU2AfhbhLQbbhqAvLsaPaOgMj64f71eMQHc0", + "mail":"t~_oJw-9fORXMFfHtwNXQ5xyTsva2CebpVGKae78dHEeQ@worklytics.onmicrosoft.com" + }, + { + "id":"p~kOTAg44Qv8HSvYWG7niJEq_fPTSFm1vHKYfVhmrS221C1HOmCt8kkL376bc8842blh7-oAvtkYr2dK5dFhDDaMs_TWiVje9MvvyyZE6JI7E", + "mail":"t~98Qqjyepls36L4F39whrqv_YskOZCB71RNm8gO43sis@worklytics.onmicrosoft.com" + }, + { + "mail":null, + "id":"p~xU2vGhAEBHegciOlP1Oz2bRY1_OkAY-GO2VY7FGQU5tc-5pDPeQYr4dh1Xrkbl1dmx1pyWCN8R3C-tWSXv_7DNDELLFYYHtX6FiIDjdLDaw" + } + ] +} diff --git a/docs/sources/microsoft-365/outlook-mail/outlook-mail.yaml b/docs/sources/microsoft-365/outlook-mail/outlook-mail.yaml index e0b149339f..5a1c6ebed3 100644 --- a/docs/sources/microsoft-365/outlook-mail/outlook-mail.yaml +++ b/docs/sources/microsoft-365/outlook-mail/outlook-mail.yaml @@ -1,38 +1,61 @@ --- endpoints: - - pathRegex: "^/v1.0/users/?[^/]*" + - pathRegex: "^/v1.0/groups/?(\\?.*)?$" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..mail" + includeOriginal: true + encoding: "JSON" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphGroup" + - pathRegex: "^/v1.0/groups/[^/?]+(\\?.*)?$" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! + jsonPaths: + - "$..mail" + includeOriginal: true + encoding: "JSON" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + id: + type: "string" + mail: + type: "string" + - pathRegex: "^/v1.0/groups/[^/]*/members.*" allowedQueryParams: - "$top" - "$select" - "$skiptoken" - "$orderBy" - "$count" - - "$filter" allowedRequestHeaders: - "ConsistencyLevel" transforms: - - ! - jsonPaths: - - "$..proxyAddresses[*]" - regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" - ! jsonPaths: - "$..employeeId" @@ -46,66 +69,70 @@ endpoints: - "$..onPremisesImmutableId" - "$..identities[*].issuerAssignedId" encoding: "URL_SAFE_TOKEN" - - pathRegex: "^/v1.0/groups/?[^/]*" - allowedRequestHeaders: - - "ConsistencyLevel" - transforms: - ! jsonPaths: - "$..proxyAddresses[*]" regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..owners" - - "$..rejectedSenders" - - "$..acceptedSenders" - - "$..members" - - "$..membersWithLicenseErrors" - - "$..mailNickname" - - "$..description" - - "$..resourceBehaviorOptions" - - "$..resourceProvisioningOptions" - - "$..onPremisesSamAccountName" - - "$..onPremisesSecurityIdentifier" - - "$..onPremisesProvisioningErrors" - - "$..securityIdentifier" - - ! - jsonPaths: - - "$..mail" - includeOriginal: true - encoding: "JSON" - - pathRegex: "^/v1.0/groups/[^/]*/members.*" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphGroupMember" + - pathRegex: "^/v1.0/users/?(\\?.*)?$" allowedQueryParams: - "$top" - "$select" - "$skiptoken" - "$orderBy" - "$count" + - "$filter" allowedRequestHeaders: - "ConsistencyLevel" transforms: + - ! + jsonPaths: + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" - ! jsonPaths: - "$..proxyAddresses[*]" regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphUser" + - pathRegex: "^/v1.0/users/[^/?]+(\\?.*)?$" + allowedQueryParams: + - "$select" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: - ! jsonPaths: - "$..employeeId" @@ -119,43 +146,448 @@ endpoints: - "$..onPremisesImmutableId" - "$..identities[*].issuerAssignedId" encoding: "URL_SAFE_TOKEN" - - pathRegex: "^/v1.0/users/[^/]*/mailboxSettings" - transforms: - - ! + - ! jsonPaths: - - "$..internalReplyMessage" - - "$..externalReplyMessage" - - pathRegex: "^/v1.0/users/[^/]*/messages/[^/]*" - transforms: - - ! + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" + - pathRegex: "^/v1.0/users/[^/]*/mailFolders(/SentItems|\\('SentItems'\\))/messages.*" + allowedRequestHeaders: + - "ConsistencyLevel" + augments: + - ! jsonPaths: - - "$..subject" - - "$..body" - - "$..bodyPreview" - - "$..emailAddress.name" - - "$..extensions" - - "$..multiValueExtendedProperties" - - "$..singleValueExtendedProperties" - - "$..internetMessageHeaders" + - "$..body.content" + transforms: - ! jsonPaths: - "$..emailAddress.address" encoding: "URL_SAFE_TOKEN" - - pathRegex: "^/v1.0/users/[^/]*/mailFolders(/SentItems|\\('SentItems'\\))/messages.*" - allowedRequestHeaders: - - "ConsistencyLevel" - transforms: - ! jsonPaths: - - "$..subject" - - "$..body" - - "$..bodyPreview" - - "$..emailAddress.name" - - "$..extensions" - - "$..multiValueExtendedProperties" - - "$..singleValueExtendedProperties" - - "$..internetMessageHeaders" + - "$..body.content" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.context': + type: "string" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/Message" + - pathRegex: "^/v1.0/users/[^/]*/mailboxSettings(\\?.*)?$" + responseSchema: + type: "object" + properties: + '@odata.context': + type: "string" + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + - pathRegex: "^/v1.0/users/[^/]*/messages/[^/]*" + augments: + - ! + jsonPaths: + - "$..body.content" + transforms: - ! jsonPaths: - "$..emailAddress.address" encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..body.content" + responseSchema: + type: "object" + properties: + '@odata.context': + type: "string" + '@odata.etag': + type: "string" + attachments: + type: "array" + items: + $ref: "#/definitions/Attachment" + bccRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + body: + $ref: "#/definitions/ItemBody" + categories: + type: "array" + items: + type: "string" + ccRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + changeKey: + type: "string" + conversationId: + type: "string" + conversationIndex: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + flag: + $ref: "#/definitions/FlagStatus" + from: + $ref: "#/definitions/Recipient" + hasAttachments: + type: "boolean" + id: + type: "string" + importance: + type: "string" + inferenceClassification: + type: "string" + internetMessageId: + type: "string" + isDeliveryReceiptRequested: + type: "boolean" + isDraft: + type: "boolean" + isRead: + type: "boolean" + isReadReceiptRequested: + type: "boolean" + lastModifiedDateTime: + type: "string" + format: "date-time" + mentionsPreview: + $ref: "#/definitions/MentionsPreview" + parentFolderId: + type: "string" + receivedDateTime: + type: "string" + format: "date-time" + replyTo: + type: "array" + items: + $ref: "#/definitions/Recipient" + sender: + $ref: "#/definitions/Recipient" + sentDateTime: + type: "string" + format: "date-time" + toRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + unsubscribeData: + type: "array" + items: + type: "string" + unsubscribeEnabled: + type: "boolean" + webLink: + type: "string" +definitions: + Attachment: + type: "object" + properties: + size: + type: "integer" + AutomaticRepliesSettings: + type: "object" + properties: + externalAudience: + type: "string" + scheduledEndDateTime: + $ref: "#/definitions/DateTimeTimeZone" + scheduledStartDateTime: + $ref: "#/definitions/DateTimeTimeZone" + status: + type: "string" + CustomTimeZone: + type: "object" + properties: + '@odata.type': + type: "string" + bias: + type: "integer" + daylightOffset: + $ref: "#/definitions/Offset" + name: + type: "string" + standardOffset: + $ref: "#/definitions/Offset" + DateTimeTimeZone: + type: "object" + properties: + dateTime: + type: "string" + format: "date-time" + timeZone: + type: "string" + timeZoneIANA: + type: "string" + EmailAddress: + type: "object" + properties: + address: + type: "string" + FlagStatus: + type: "object" + properties: + completedDateTime: + $ref: "#/definitions/DateTimeTimeZone" + dueDateTime: + $ref: "#/definitions/DateTimeTimeZone" + flagStatus: + type: "string" + startDateTime: + $ref: "#/definitions/DateTimeTimeZone" + GraphGroup: + type: "object" + properties: + id: + type: "string" + mail: + type: "string" + GraphGroupMember: + type: "object" + properties: + id: + type: "string" + GraphUser: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" + ItemBody: + type: "object" + properties: + content: + type: "string" + contentType: + type: "string" + LocaleInfo: + type: "object" + properties: + displayName: + type: "string" + locale: + type: "string" + MailboxSettings: + type: "object" + properties: + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + MentionsPreview: + type: "object" + properties: + isMentioned: + type: "boolean" + Message: + type: "object" + properties: + '@odata.context': + type: "string" + '@odata.etag': + type: "string" + attachments: + type: "array" + items: + $ref: "#/definitions/Attachment" + bccRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + body: + $ref: "#/definitions/ItemBody" + categories: + type: "array" + items: + type: "string" + ccRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + changeKey: + type: "string" + conversationId: + type: "string" + conversationIndex: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + flag: + $ref: "#/definitions/FlagStatus" + from: + $ref: "#/definitions/Recipient" + hasAttachments: + type: "boolean" + id: + type: "string" + importance: + type: "string" + inferenceClassification: + type: "string" + internetMessageId: + type: "string" + isDeliveryReceiptRequested: + type: "boolean" + isDraft: + type: "boolean" + isRead: + type: "boolean" + isReadReceiptRequested: + type: "boolean" + lastModifiedDateTime: + type: "string" + format: "date-time" + mentionsPreview: + $ref: "#/definitions/MentionsPreview" + parentFolderId: + type: "string" + receivedDateTime: + type: "string" + format: "date-time" + replyTo: + type: "array" + items: + $ref: "#/definitions/Recipient" + sender: + $ref: "#/definitions/Recipient" + sentDateTime: + type: "string" + format: "date-time" + toRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + unsubscribeData: + type: "array" + items: + type: "string" + unsubscribeEnabled: + type: "boolean" + webLink: + type: "string" + Offset: + type: "object" + properties: + dayOccurrence: + type: "integer" + dayOfWeek: + type: "string" + daylightBias: + type: "integer" + month: + type: "integer" + time: + type: "string" + year: + type: "integer" + Recipient: + type: "object" + properties: + emailAddress: + $ref: "#/definitions/EmailAddress" + WorkingHours: + type: "object" + properties: + daysOfWeek: + type: "array" + items: + type: "string" + endTime: + type: "string" + format: "time" + startTime: + type: "string" + format: "time" + timeZone: + anyOf: + - $ref: "#/definitions/CustomTimeZone" diff --git a/docs/sources/microsoft-365/outlook-mail/outlook-mail_no-app-ids.yaml b/docs/sources/microsoft-365/outlook-mail/outlook-mail_no-app-ids.yaml index 7da282bf96..44c50887d6 100644 --- a/docs/sources/microsoft-365/outlook-mail/outlook-mail_no-app-ids.yaml +++ b/docs/sources/microsoft-365/outlook-mail/outlook-mail_no-app-ids.yaml @@ -1,84 +1,51 @@ --- endpoints: - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*" - allowedQueryParams: - - "$top" - - "$select" - - "$skiptoken" - - "$orderBy" - - "$count" - - "$filter" + - pathRegex: "^/v1.0/groups/?(\\?.*)?$" allowedRequestHeaders: - "ConsistencyLevel" transforms: - - ! - jsonPaths: - - "$..proxyAddresses[*]" - regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" - ! jsonPaths: - - "$..employeeId" - - "$..userPrincipalName" - - "$..imAddresses[*]" - "$..mail" - - "$..otherMails[*]" - - "$..onPremisesSamAccountName" - - "$..onPremisesUserPrincipalName" - - "$..onPremisesDistinguishedName" - - "$..onPremisesImmutableId" - - "$..identities[*].issuerAssignedId" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$..id" - includeReversible: true - encoding: "URL_SAFE_TOKEN" - - pathRegex: "^/v1.0/groups/?[^/]*" - allowedRequestHeaders: - - "ConsistencyLevel" - transforms: + includeOriginal: true + encoding: "JSON" - ! jsonPaths: - "$..proxyAddresses[*]" regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..owners" - - "$..rejectedSenders" - - "$..acceptedSenders" - - "$..members" - - "$..membersWithLicenseErrors" - - "$..mailNickname" - - "$..description" - - "$..resourceBehaviorOptions" - - "$..resourceProvisioningOptions" - - "$..onPremisesSamAccountName" - - "$..onPremisesSecurityIdentifier" - - "$..onPremisesProvisioningErrors" - - "$..securityIdentifier" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphGroup" + - pathRegex: "^/v1.0/groups/[^/?]+(\\?.*)?$" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: - ! jsonPaths: - "$..mail" includeOriginal: true encoding: "JSON" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + id: + type: "string" + mail: + type: "string" - pathRegex: "^/v1.0/groups/[^/]*/members.*" allowedQueryParams: - "$top" @@ -89,28 +56,6 @@ endpoints: allowedRequestHeaders: - "ConsistencyLevel" transforms: - - ! - jsonPaths: - - "$..proxyAddresses[*]" - regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" - ! jsonPaths: - "$..employeeId" @@ -128,27 +73,95 @@ endpoints: jsonPaths: - "$..id" encoding: "URL_SAFE_TOKEN" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/mailboxSettings" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphGroupMember" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/mailFolders(/SentItems|\\('SentItems'\\\ + ))/messages.*" + allowedRequestHeaders: + - "ConsistencyLevel" + augments: + - ! + jsonPaths: + - "$..body.content" transforms: + - ! + jsonPaths: + - "$..emailAddress.address" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" + regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" - ! jsonPaths: - - "$..internalReplyMessage" - - "$..externalReplyMessage" + - "$..body.content" - ! jsonPaths: - "$..['@odata.context']" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/messages/[^/]*" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.context': + type: "string" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/Message" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/mailboxSettings(\\?.*)?$" transforms: - ! jsonPaths: - - "$..subject" - - "$..body" - - "$..bodyPreview" - - "$..emailAddress.name" - - "$..extensions" - - "$..multiValueExtendedProperties" - - "$..singleValueExtendedProperties" - - "$..internetMessageHeaders" + - "$..['@odata.context']" + responseSchema: + type: "object" + properties: + '@odata.context': + type: "string" + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/messages/[^/]*" + augments: + - ! + jsonPaths: + - "$..body.content" + transforms: - ! jsonPaths: - "$..emailAddress.address" @@ -157,32 +170,457 @@ endpoints: jsonPaths: - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" + - ! + jsonPaths: + - "$..body.content" - ! jsonPaths: - "$..['@odata.context']" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/mailFolders(/SentItems|\\('SentItems'\\\ - ))/messages.*" + responseSchema: + type: "object" + properties: + '@odata.context': + type: "string" + '@odata.etag': + type: "string" + attachments: + type: "array" + items: + $ref: "#/definitions/Attachment" + bccRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + body: + $ref: "#/definitions/ItemBody" + categories: + type: "array" + items: + type: "string" + ccRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + changeKey: + type: "string" + conversationId: + type: "string" + conversationIndex: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + flag: + $ref: "#/definitions/FlagStatus" + from: + $ref: "#/definitions/Recipient" + hasAttachments: + type: "boolean" + id: + type: "string" + importance: + type: "string" + inferenceClassification: + type: "string" + internetMessageId: + type: "string" + isDeliveryReceiptRequested: + type: "boolean" + isDraft: + type: "boolean" + isRead: + type: "boolean" + isReadReceiptRequested: + type: "boolean" + lastModifiedDateTime: + type: "string" + format: "date-time" + mentionsPreview: + $ref: "#/definitions/MentionsPreview" + parentFolderId: + type: "string" + receivedDateTime: + type: "string" + format: "date-time" + replyTo: + type: "array" + items: + $ref: "#/definitions/Recipient" + sender: + $ref: "#/definitions/Recipient" + sentDateTime: + type: "string" + format: "date-time" + toRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + unsubscribeData: + type: "array" + items: + type: "string" + unsubscribeEnabled: + type: "boolean" + webLink: + type: "string" + - pathRegex: "^/v1.0/users(\\?.*)?$" + allowedQueryParams: + - "$top" + - "$select" + - "$skiptoken" + - "$orderBy" + - "$count" + - "$filter" allowedRequestHeaders: - "ConsistencyLevel" transforms: - - ! + - ! jsonPaths: - - "$..subject" - - "$..body" - - "$..bodyPreview" - - "$..emailAddress.name" - - "$..extensions" - - "$..multiValueExtendedProperties" - - "$..singleValueExtendedProperties" - - "$..internetMessageHeaders" + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" - ! jsonPaths: - - "$..emailAddress.address" + - "$..id" + includeReversible: true encoding: "URL_SAFE_TOKEN" - - ! + - ! jsonPaths: - - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" - regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" - - ! + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphUser" + - pathRegex: "^/v1.0/users/p~[a-zA-Z0-9_-]+(\\?.*)?$" + allowedQueryParams: + - "$select" + allowedRequestHeaders: + - "ConsistencyLevel" + transforms: + - ! jsonPaths: - - "$..['@odata.context']" + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..id" + includeReversible: true + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" +definitions: + Attachment: + type: "object" + properties: + size: + type: "integer" + AutomaticRepliesSettings: + type: "object" + properties: + externalAudience: + type: "string" + scheduledEndDateTime: + $ref: "#/definitions/DateTimeTimeZone" + scheduledStartDateTime: + $ref: "#/definitions/DateTimeTimeZone" + status: + type: "string" + CustomTimeZone: + type: "object" + properties: + '@odata.type': + type: "string" + bias: + type: "integer" + daylightOffset: + $ref: "#/definitions/Offset" + name: + type: "string" + standardOffset: + $ref: "#/definitions/Offset" + DateTimeTimeZone: + type: "object" + properties: + dateTime: + type: "string" + format: "date-time" + timeZone: + type: "string" + timeZoneIANA: + type: "string" + EmailAddress: + type: "object" + properties: + address: + type: "string" + FlagStatus: + type: "object" + properties: + completedDateTime: + $ref: "#/definitions/DateTimeTimeZone" + dueDateTime: + $ref: "#/definitions/DateTimeTimeZone" + flagStatus: + type: "string" + startDateTime: + $ref: "#/definitions/DateTimeTimeZone" + GraphGroup: + type: "object" + properties: + id: + type: "string" + mail: + type: "string" + GraphGroupMember: + type: "object" + properties: + id: + type: "string" + GraphUser: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" + ItemBody: + type: "object" + properties: + content: + type: "string" + contentType: + type: "string" + LocaleInfo: + type: "object" + properties: + displayName: + type: "string" + locale: + type: "string" + MailboxSettings: + type: "object" + properties: + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + MentionsPreview: + type: "object" + properties: + isMentioned: + type: "boolean" + Message: + type: "object" + properties: + '@odata.context': + type: "string" + '@odata.etag': + type: "string" + attachments: + type: "array" + items: + $ref: "#/definitions/Attachment" + bccRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + body: + $ref: "#/definitions/ItemBody" + categories: + type: "array" + items: + type: "string" + ccRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + changeKey: + type: "string" + conversationId: + type: "string" + conversationIndex: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + flag: + $ref: "#/definitions/FlagStatus" + from: + $ref: "#/definitions/Recipient" + hasAttachments: + type: "boolean" + id: + type: "string" + importance: + type: "string" + inferenceClassification: + type: "string" + internetMessageId: + type: "string" + isDeliveryReceiptRequested: + type: "boolean" + isDraft: + type: "boolean" + isRead: + type: "boolean" + isReadReceiptRequested: + type: "boolean" + lastModifiedDateTime: + type: "string" + format: "date-time" + mentionsPreview: + $ref: "#/definitions/MentionsPreview" + parentFolderId: + type: "string" + receivedDateTime: + type: "string" + format: "date-time" + replyTo: + type: "array" + items: + $ref: "#/definitions/Recipient" + sender: + $ref: "#/definitions/Recipient" + sentDateTime: + type: "string" + format: "date-time" + toRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + unsubscribeData: + type: "array" + items: + type: "string" + unsubscribeEnabled: + type: "boolean" + webLink: + type: "string" + Offset: + type: "object" + properties: + dayOccurrence: + type: "integer" + dayOfWeek: + type: "string" + daylightBias: + type: "integer" + month: + type: "integer" + time: + type: "string" + year: + type: "integer" + Recipient: + type: "object" + properties: + emailAddress: + $ref: "#/definitions/EmailAddress" + WorkingHours: + type: "object" + properties: + daysOfWeek: + type: "array" + items: + type: "string" + endTime: + type: "string" + format: "time" + startTime: + type: "string" + format: "time" + timeZone: + anyOf: + - $ref: "#/definitions/CustomTimeZone" diff --git a/docs/sources/microsoft-365/outlook-mail/outlook-mail_no-app-ids_no-groups.yaml b/docs/sources/microsoft-365/outlook-mail/outlook-mail_no-app-ids_no-groups.yaml index 6d51e8de80..4f1fdda8bc 100644 --- a/docs/sources/microsoft-365/outlook-mail/outlook-mail_no-app-ids_no-groups.yaml +++ b/docs/sources/microsoft-365/outlook-mail/outlook-mail_no-app-ids_no-groups.yaml @@ -1,6 +1,179 @@ --- endpoints: - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/mailFolders(/SentItems|\\('SentItems'\\\ + ))/messages.*" + allowedRequestHeaders: + - "ConsistencyLevel" + augments: + - ! + jsonPaths: + - "$..body.content" + transforms: + - ! + jsonPaths: + - "$..emailAddress.address" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" + regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" + - ! + jsonPaths: + - "$..body.content" + - ! + jsonPaths: + - "$..['@odata.context']" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.context': + type: "string" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/Message" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/mailboxSettings(\\?.*)?$" + transforms: + - ! + jsonPaths: + - "$..['@odata.context']" + responseSchema: + type: "object" + properties: + '@odata.context': + type: "string" + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/messages/[^/]*" + augments: + - ! + jsonPaths: + - "$..body.content" + transforms: + - ! + jsonPaths: + - "$..emailAddress.address" + encoding: "URL_SAFE_TOKEN" + - ! + jsonPaths: + - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" + regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" + - ! + jsonPaths: + - "$..body.content" + - ! + jsonPaths: + - "$..['@odata.context']" + responseSchema: + type: "object" + properties: + '@odata.context': + type: "string" + '@odata.etag': + type: "string" + attachments: + type: "array" + items: + $ref: "#/definitions/Attachment" + bccRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + body: + $ref: "#/definitions/ItemBody" + categories: + type: "array" + items: + type: "string" + ccRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + changeKey: + type: "string" + conversationId: + type: "string" + conversationIndex: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + flag: + $ref: "#/definitions/FlagStatus" + from: + $ref: "#/definitions/Recipient" + hasAttachments: + type: "boolean" + id: + type: "string" + importance: + type: "string" + inferenceClassification: + type: "string" + internetMessageId: + type: "string" + isDeliveryReceiptRequested: + type: "boolean" + isDraft: + type: "boolean" + isRead: + type: "boolean" + isReadReceiptRequested: + type: "boolean" + lastModifiedDateTime: + type: "string" + format: "date-time" + mentionsPreview: + $ref: "#/definitions/MentionsPreview" + parentFolderId: + type: "string" + receivedDateTime: + type: "string" + format: "date-time" + replyTo: + type: "array" + items: + $ref: "#/definitions/Recipient" + sender: + $ref: "#/definitions/Recipient" + sentDateTime: + type: "string" + format: "date-time" + toRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + unsubscribeData: + type: "array" + items: + type: "string" + unsubscribeEnabled: + type: "boolean" + webLink: + type: "string" + - pathRegex: "^/v1.0/users(\\?.*)?$" allowedQueryParams: - "$top" - "$select" @@ -11,28 +184,6 @@ endpoints: allowedRequestHeaders: - "ConsistencyLevel" transforms: - - ! - jsonPaths: - - "$..proxyAddresses[*]" - regex: "(?i)^smtp:(.*)$" - - ! - jsonPaths: - - "$..displayName" - - "$..aboutMe" - - "$..mySite" - - "$..preferredName" - - "$..givenName" - - "$..surname" - - "$..jobTitle" - - "$..mailNickname" - - "$..responsibilities" - - "$..skills" - - "$..faxNumber" - - "$..mobilePhone" - - "$..businessPhones[*]" - - "$..onPremisesExtensionAttributes" - - "$..onPremisesSecurityIdentifier" - - "$..securityIdentifier" - ! jsonPaths: - "$..employeeId" @@ -51,61 +202,323 @@ endpoints: - "$..id" includeReversible: true encoding: "URL_SAFE_TOKEN" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/mailboxSettings" - transforms: - - ! - jsonPaths: - - "$..internalReplyMessage" - - "$..externalReplyMessage" - - ! - jsonPaths: - - "$..['@odata.context']" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/messages/[^/]*" - transforms: - - ! - jsonPaths: - - "$..subject" - - "$..body" - - "$..bodyPreview" - - "$..emailAddress.name" - - "$..extensions" - - "$..multiValueExtendedProperties" - - "$..singleValueExtendedProperties" - - "$..internetMessageHeaders" - - ! - jsonPaths: - - "$..emailAddress.address" - encoding: "URL_SAFE_TOKEN" - - ! - jsonPaths: - - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" - regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" - - ! + - ! jsonPaths: - - "$..['@odata.context']" - - pathRegex: "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*/mailFolders(/SentItems|\\('SentItems'\\\ - ))/messages.*" + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + '@microsoft.graph.hasMoreData': + type: "boolean" + '@odata.deltaLink': + type: "string" + '@odata.nextLink': + type: "string" + value: + type: "array" + items: + $ref: "#/definitions/GraphUser" + - pathRegex: "^/v1.0/users/p~[a-zA-Z0-9_-]+(\\?.*)?$" + allowedQueryParams: + - "$select" allowedRequestHeaders: - "ConsistencyLevel" transforms: - - ! - jsonPaths: - - "$..subject" - - "$..body" - - "$..bodyPreview" - - "$..emailAddress.name" - - "$..extensions" - - "$..multiValueExtendedProperties" - - "$..singleValueExtendedProperties" - - "$..internetMessageHeaders" - ! jsonPaths: - - "$..emailAddress.address" + - "$..employeeId" + - "$..userPrincipalName" + - "$..imAddresses[*]" + - "$..mail" + - "$..otherMails[*]" + - "$..onPremisesSamAccountName" + - "$..onPremisesUserPrincipalName" + - "$..onPremisesDistinguishedName" + - "$..onPremisesImmutableId" + - "$..identities[*].issuerAssignedId" encoding: "URL_SAFE_TOKEN" - - ! + - ! jsonPaths: - - "$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']" - regex: "^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$" - - ! + - "$..id" + includeReversible: true + encoding: "URL_SAFE_TOKEN" + - ! jsonPaths: - - "$..['@odata.context']" + - "$..proxyAddresses[*]" + regex: "(?i)^smtp:(.*)$" + responseSchema: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" +definitions: + Attachment: + type: "object" + properties: + size: + type: "integer" + AutomaticRepliesSettings: + type: "object" + properties: + externalAudience: + type: "string" + scheduledEndDateTime: + $ref: "#/definitions/DateTimeTimeZone" + scheduledStartDateTime: + $ref: "#/definitions/DateTimeTimeZone" + status: + type: "string" + CustomTimeZone: + type: "object" + properties: + '@odata.type': + type: "string" + bias: + type: "integer" + daylightOffset: + $ref: "#/definitions/Offset" + name: + type: "string" + standardOffset: + $ref: "#/definitions/Offset" + DateTimeTimeZone: + type: "object" + properties: + dateTime: + type: "string" + format: "date-time" + timeZone: + type: "string" + timeZoneIANA: + type: "string" + EmailAddress: + type: "object" + properties: + address: + type: "string" + FlagStatus: + type: "object" + properties: + completedDateTime: + $ref: "#/definitions/DateTimeTimeZone" + dueDateTime: + $ref: "#/definitions/DateTimeTimeZone" + flagStatus: + type: "string" + startDateTime: + $ref: "#/definitions/DateTimeTimeZone" + GraphUser: + type: "object" + properties: + accountEnabled: + type: "boolean" + employeeId: + type: "string" + hireDate: + type: "string" + format: "date-time" + id: + type: "string" + isResourceAccount: + type: "boolean" + mail: + type: "string" + mailboxSettings: + $ref: "#/definitions/MailboxSettings" + otherMails: + type: "array" + items: + type: "string" + proxyAddresses: + type: "array" + items: + type: "string" + userType: + type: "string" + ItemBody: + type: "object" + properties: + content: + type: "string" + contentType: + type: "string" + LocaleInfo: + type: "object" + properties: + displayName: + type: "string" + locale: + type: "string" + MailboxSettings: + type: "object" + properties: + archiveFolder: + type: "string" + automaticRepliesSetting: + $ref: "#/definitions/AutomaticRepliesSettings" + dateFormat: + type: "string" + delegateMeetingMessageDeliveryOptions: + type: "string" + language: + $ref: "#/definitions/LocaleInfo" + timeFormat: + type: "string" + timeZone: + type: "string" + userPurpose: + type: "string" + workingHours: + $ref: "#/definitions/WorkingHours" + MentionsPreview: + type: "object" + properties: + isMentioned: + type: "boolean" + Message: + type: "object" + properties: + '@odata.context': + type: "string" + '@odata.etag': + type: "string" + attachments: + type: "array" + items: + $ref: "#/definitions/Attachment" + bccRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + body: + $ref: "#/definitions/ItemBody" + categories: + type: "array" + items: + type: "string" + ccRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + changeKey: + type: "string" + conversationId: + type: "string" + conversationIndex: + type: "string" + createdDateTime: + type: "string" + format: "date-time" + flag: + $ref: "#/definitions/FlagStatus" + from: + $ref: "#/definitions/Recipient" + hasAttachments: + type: "boolean" + id: + type: "string" + importance: + type: "string" + inferenceClassification: + type: "string" + internetMessageId: + type: "string" + isDeliveryReceiptRequested: + type: "boolean" + isDraft: + type: "boolean" + isRead: + type: "boolean" + isReadReceiptRequested: + type: "boolean" + lastModifiedDateTime: + type: "string" + format: "date-time" + mentionsPreview: + $ref: "#/definitions/MentionsPreview" + parentFolderId: + type: "string" + receivedDateTime: + type: "string" + format: "date-time" + replyTo: + type: "array" + items: + $ref: "#/definitions/Recipient" + sender: + $ref: "#/definitions/Recipient" + sentDateTime: + type: "string" + format: "date-time" + toRecipients: + type: "array" + items: + $ref: "#/definitions/Recipient" + unsubscribeData: + type: "array" + items: + type: "string" + unsubscribeEnabled: + type: "boolean" + webLink: + type: "string" + Offset: + type: "object" + properties: + dayOccurrence: + type: "integer" + dayOfWeek: + type: "string" + daylightBias: + type: "integer" + month: + type: "integer" + time: + type: "string" + year: + type: "integer" + Recipient: + type: "object" + properties: + emailAddress: + $ref: "#/definitions/EmailAddress" + WorkingHours: + type: "object" + properties: + daysOfWeek: + type: "array" + items: + type: "string" + endTime: + type: "string" + format: "time" + startTime: + type: "string" + format: "time" + timeZone: + anyOf: + - $ref: "#/definitions/CustomTimeZone" diff --git a/java/core/src/main/java/co/worklytics/psoxy/rules/msft/PrebuiltSanitizerRules.java b/java/core/src/main/java/co/worklytics/psoxy/rules/msft/PrebuiltSanitizerRules.java index b7e644b008..eb82d6a7df 100644 --- a/java/core/src/main/java/co/worklytics/psoxy/rules/msft/PrebuiltSanitizerRules.java +++ b/java/core/src/main/java/co/worklytics/psoxy/rules/msft/PrebuiltSanitizerRules.java @@ -2,790 +2,45 @@ import co.worklytics.psoxy.ConfigRulesModule; import co.worklytics.psoxy.rules.RESTRules; -import co.worklytics.psoxy.rules.generics.Calendar; -import com.avaulta.gateway.rules.Endpoint; import co.worklytics.psoxy.rules.Rules2; -import com.avaulta.gateway.rules.augments.Augment; -import com.avaulta.gateway.rules.transforms.Transform; -import co.worklytics.psoxy.rules.zoom.ZoomTransforms; -import com.avaulta.gateway.pseudonyms.PseudonymEncoder; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Streams; -import java.util.Arrays; -import java.util.List; import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; -import java.util.stream.Stream; public class PrebuiltSanitizerRules { - // required by Graph API for `$filter`/`$search`/`$count` "advanced query" support on directory listings - static final Set CONSISTENCY_LEVEL_HEADER = Set.of("ConsistencyLevel"); - - static final Transform.Tokenize TOKENIZE_ODATA_LINKS = Transform.Tokenize.builder() - .jsonPath("$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']") - .regex("^https://graph.microsoft.com/v1.0/users/([a-zA-Z0-9_-]+)/.*$") - .build(); - - static final Transform REDACT_ODATA_CONTEXT = Transform.Redact.builder() - .jsonPath("$..['@odata.context']") - .build(); - - static final Transform REDACT_ODATA_COUNT = Transform.Redact.builder() - .jsonPath("$..['@odata.count']") - .build(); - - static final Transform REDACT_ODATA_TYPE = Transform.Redact.builder() - .jsonPath("$..['@odata.type']")//['@odata.type'] - .build(); - - static final Transform REDACT_ODATA_ID = Transform.Redact.builder() - .jsonPath("$..['@odata.id']") - .build(); - - static final Transform.PseudonymizeRegexMatches PSEUDONYMIZE_PROXY_ADDRESSES = Transform.PseudonymizeRegexMatches.builder() - .jsonPath("$..proxyAddresses[*]") - .regex("(?i)^smtp:(.*)$") - .build(); - - static final String ENTRA_ID_REGEX_USERS = "^/v1.0/users/?[^/]*"; - static final String ENTRA_ID_REGEX_USERS_BY_PSEUDO = "^/v1.0/users(/p~[a-zA-Z0-9_-]+?)?[^/]*"; - static final String ENTRA_ID_REGEX_GROUP_MEMBERS = "^/v1.0/groups/[^/]*/members.*"; - - static final List USER_TRANSFORMS = Arrays.asList( - PSEUDONYMIZE_PROXY_ADDRESSES, - Transform.Redact.builder() - .jsonPath("$..displayName") - .jsonPath("$..aboutMe") - .jsonPath("$..mySite") - .jsonPath("$..preferredName") - .jsonPath("$..givenName") - .jsonPath("$..surname") - .jsonPath("$..jobTitle") - .jsonPath("$..mailNickname") //get the actual mail - .jsonPath("$..responsibilities") - .jsonPath("$..skills") - .jsonPath("$..faxNumber") - .jsonPath("$..mobilePhone") - .jsonPath("$..businessPhones[*]") - .jsonPath("$..onPremisesExtensionAttributes") - .jsonPath("$..onPremisesSecurityIdentifier") - .jsonPath("$..securityIdentifier") - .build(), - Transform.Pseudonymize.builder() - .jsonPath("$..employeeId") - .jsonPath("$..userPrincipalName") - .jsonPath("$..imAddresses[*]") - .jsonPath("$..mail") - .jsonPath("$..otherMails[*]") - .jsonPath("$..onPremisesSamAccountName") - .jsonPath("$..onPremisesUserPrincipalName") - .jsonPath("$..onPremisesDistinguishedName") - .jsonPath("$..onPremisesImmutableId") - .jsonPath("$..identities[*].issuerAssignedId") - .build() - ); - static final Endpoint ENTRA_ID_USERS = Endpoint.builder() - .pathRegex(ENTRA_ID_REGEX_USERS) - .allowedQueryParams(List.of("$top", "$select", "$skiptoken", "$orderBy", "$count", "$filter")) - .allowedRequestHeaders(CONSISTENCY_LEVEL_HEADER) - .transforms(USER_TRANSFORMS) - .build(); - - static final Endpoint ENTRA_ID_USERS_NO_APP_IDS = Endpoint.builder() - .pathRegex(ENTRA_ID_REGEX_USERS_BY_PSEUDO) - .allowedQueryParams(List.of("$top", "$select", "$skiptoken", "$orderBy", "$count", "$filter")) - .allowedRequestHeaders(CONSISTENCY_LEVEL_HEADER) - .transforms(USER_TRANSFORMS) - .build(); - - static final Endpoint ENTRA_ID_GROUPS = Endpoint.builder() - .pathRegex("^/v1.0/groups/?[^/]*") - .allowedRequestHeaders(CONSISTENCY_LEVEL_HEADER) - .transform(PSEUDONYMIZE_PROXY_ADDRESSES) - .transform(Transform.Redact.builder() - .jsonPath("$..owners") - .jsonPath("$..rejectedSenders") - .jsonPath("$..acceptedSenders") - .jsonPath("$..members") - .jsonPath("$..membersWithLicenseErrors") - .jsonPath("$..mailNickname") - .jsonPath("$..description") // q: include for Project use case? - .jsonPath("$..resourceBehaviorOptions") - .jsonPath("$..resourceProvisioningOptions") - .jsonPath("$..onPremisesSamAccountName") - .jsonPath("$..onPremisesSecurityIdentifier") - .jsonPath("$..onPremisesProvisioningErrors") - .jsonPath("$..securityIdentifier") - .build()) - .transform(Transform.Pseudonymize.builder() - .includeOriginal(true) - .encoding(PseudonymEncoder.Implementations.JSON) - .jsonPath("$..mail") - .build()) - .build(); - - static final Endpoint ENTRA_ID_GROUP_MEMBERS = Endpoint.builder() - .pathRegex(ENTRA_ID_REGEX_GROUP_MEMBERS) - .allowedQueryParams(List.of("$top", "$select", "$skiptoken", "$orderBy", "$count")) - .allowedRequestHeaders(CONSISTENCY_LEVEL_HEADER) - .transforms(USER_TRANSFORMS) - .build(); - - static final Rules2 ENTRA_ID = Rules2.builder() - .endpoint(ENTRA_ID_USERS) - .endpoint(ENTRA_ID_GROUPS) - .endpoint(ENTRA_ID_GROUP_MEMBERS) - .build(); - - static final Rules2 ENTRA_ID_NO_GROUPS = Rules2.builder() - .endpoint(ENTRA_ID_USERS_NO_APP_IDS) - .build(); - - static final Transform ENTRA_ID_USERS_NO_APP_IDS_TRANSFORM_RULE = Transform.Pseudonymize.builder() - .includeReversible(true) - .encoding(PseudonymEncoder.Implementations.URL_SAFE_TOKEN) - .jsonPath("$..id") - .build(); - static final Rules2 ENTRA_ID_NO_MSFT_IDS = Rules2.builder() - .endpoint(ENTRA_ID_USERS_NO_APP_IDS) - .endpoint(ENTRA_ID_GROUPS) - .endpoint(ENTRA_ID_GROUP_MEMBERS) - .build() - .withTransformByEndpoint(ENTRA_ID_REGEX_USERS_BY_PSEUDO, ENTRA_ID_USERS_NO_APP_IDS_TRANSFORM_RULE) - .withTransformByEndpoint(ENTRA_ID_REGEX_GROUP_MEMBERS, Transform.Pseudonymize.builder() - .jsonPath("$..id") - .build()); - - static final Rules2 ENTRA_ID_NO_MSFT_IDS_NO_GROUPS = ENTRA_ID_NO_GROUPS - .withTransformByEndpoint(ENTRA_ID_REGEX_USERS_BY_PSEUDO, Transform.Pseudonymize.builder() - .includeReversible(true) - .encoding(PseudonymEncoder.Implementations.URL_SAFE_TOKEN) - .jsonPath("$..id") - .build()); - - static final String OUTLOOK_PATH_REGEX_MAILBOX_SETTINGS = "^/v1.0/users/[^/]*/mailboxSettings"; - static final String OUTLOOK_MAIL_PATH_REGEX_MESSAGES = "^/v1.0/users/[^/]*/messages/[^/]*"; - static final String OUTLOOK_MAIL_PATH_REGEX_SENT_MESSAGES = "^/v1.0/users/[^/]*/mailFolders(/SentItems|\\('SentItems'\\))/messages.*"; - - static final List OUTLOOK_MAIL_ENDPOINTS = Arrays.asList( - Endpoint.builder() - .pathRegex(OUTLOOK_PATH_REGEX_MAILBOX_SETTINGS) - .transform(Transform.Redact.builder() - .jsonPath("$..internalReplyMessage") - .jsonPath("$..externalReplyMessage") - .build()) - .build(), - Endpoint.builder() - .pathRegex(OUTLOOK_MAIL_PATH_REGEX_MESSAGES) - .transform(Transform.Redact.builder() - .jsonPath("$..subject") - .jsonPath("$..body") - .jsonPath("$..bodyPreview") - .jsonPath("$..emailAddress.name") - .jsonPath("$..extensions") - .jsonPath("$..multiValueExtendedProperties") - .jsonPath("$..singleValueExtendedProperties") - .jsonPath("$..internetMessageHeaders") //values that we care about generally parsed to other fields - .build() - ) - .transform(Transform.Pseudonymize.builder() - .jsonPath("$..emailAddress.address") - .build() - ) - .build(), - Endpoint.builder() - .pathRegex(OUTLOOK_MAIL_PATH_REGEX_SENT_MESSAGES) - .allowedRequestHeaders(CONSISTENCY_LEVEL_HEADER) - .transform(Transform.Redact.builder() - .jsonPath("$..subject") - .jsonPath("$..body") - .jsonPath("$..bodyPreview") - .jsonPath("$..emailAddress.name") - .jsonPath("$..extensions") - .jsonPath("$..multiValueExtendedProperties") - .jsonPath("$..singleValueExtendedProperties") - .jsonPath("$..internetMessageHeaders") //values that we care about generally parsed to other fields - .build()) - .transform(Transform.Pseudonymize.builder() - .jsonPath("$..emailAddress.address") - .build()) - .build() - ); - - static final List OUTLOOK_MAIL_ENDPOINTS_NO_APP_IDS = Arrays.asList( - getMailboxSettings(ENTRA_ID_REGEX_USERS_BY_PSEUDO), - Endpoint.builder() - .pathRegex(ENTRA_ID_REGEX_USERS_BY_PSEUDO + "/messages/[^/]*") - .transform(Transform.Redact.builder() - .jsonPath("$..subject") - .jsonPath("$..body") - .jsonPath("$..bodyPreview") - .jsonPath("$..emailAddress.name") - .jsonPath("$..extensions") - .jsonPath("$..multiValueExtendedProperties") - .jsonPath("$..singleValueExtendedProperties") - .jsonPath("$..internetMessageHeaders") //values that we care about generally parsed to other fields - .build() - ) - .transform(Transform.Pseudonymize.builder() - .jsonPath("$..emailAddress.address") - .build() - ) - .transform(TOKENIZE_ODATA_LINKS) - .transform(REDACT_ODATA_CONTEXT) - .build(), - Endpoint.builder() - .pathRegex(ENTRA_ID_REGEX_USERS_BY_PSEUDO + "/mailFolders(/SentItems|\\('SentItems'\\))/messages.*") - .allowedRequestHeaders(CONSISTENCY_LEVEL_HEADER) - .transform(Transform.Redact.builder() - .jsonPath("$..subject") - .jsonPath("$..body") - .jsonPath("$..bodyPreview") - .jsonPath("$..emailAddress.name") - .jsonPath("$..extensions") - .jsonPath("$..multiValueExtendedProperties") - .jsonPath("$..singleValueExtendedProperties") - .jsonPath("$..internetMessageHeaders") //values that we care about generally parsed to other fields - .build()) - .transform(Transform.Pseudonymize.builder() - .jsonPath("$..emailAddress.address") - .build()) - .transform(TOKENIZE_ODATA_LINKS) - .transform(REDACT_ODATA_CONTEXT) - .build() - ); - - static final Rules2 OUTLOOK_MAIL = ENTRA_ID.withAdditionalEndpoints(OUTLOOK_MAIL_ENDPOINTS); - - static final Rules2 OUTLOOK_MAIL_NO_APP_IDS = ENTRA_ID_NO_MSFT_IDS - .withAdditionalEndpoints(OUTLOOK_MAIL_ENDPOINTS_NO_APP_IDS); - - static final Rules2 OUTLOOK_MAIL_NO_APP_IDS_NO_GROUPS = ENTRA_ID_NO_MSFT_IDS_NO_GROUPS - .withAdditionalEndpoints(OUTLOOK_MAIL_ENDPOINTS_NO_APP_IDS); - - - //transforms to apply to endpoints that return Event or Event collection - static final Endpoint EVENT_TRANSFORMS = Endpoint.builder() - .transform(Calendar.PRESERVE_CONVENTIONAL_PHRASE_SNIPPETS.toBuilder() - .jsonPath("$..subject") - .build()) - .transform(Transform.Redact.builder() - .jsonPath("$..reminderMinutesBeforeStart") - .jsonPath("$..isReminderOn") - .jsonPath("$..allowNewTimeProposals") - .jsonPath("$..transactionId") - .jsonPath("$..emailAddress.name") - .jsonPath("$..extensions") - .jsonPath("$..multiValueExtendedProperties") - .jsonPath("$..singleValueExtendedProperties") - .jsonPath("$..location.coordinates") - .jsonPath("$..locations[*].coordinates") - .jsonPath("$..location.address") - .jsonPath("$..locations[*].address") - .build()) - .transform(Transform.Pseudonymize.builder() - .jsonPath("$..emailAddress.address") - .build()) - .transform(ZoomTransforms.SANITIZE_JOIN_URL.toBuilder() - .jsonPath("$..location.uniqueId") - .jsonPath("$..locations[*].uniqueId") - .jsonPath("$..location.displayName") - .jsonPath("$..locations[*].displayName") - .jsonPath("$..location.locationUri") - .jsonPath("$..locations[*].locationUri") - .jsonPath("$..onlineMeeting.joinUrl") - .jsonPath("$..onlineMeetingUrl") - .jsonPath("$..body.content") // in case we expose this in future (currently redacted) - .jsonPath("$..bodyPreview") // in case we expose this in future (currently redacted) - .build()) - .transform(ZoomTransforms.FILTER_CONTENT_EXCEPT_ZOOM_URL.toBuilder() - .jsonPath("$..body.content") // in case we expose this in future (currently redacted) - .jsonPath("$..bodyPreview") // in case we expose this in future (currently redacted) - .build()) - .build(); - - - static final String OUTLOOK_CALENDAR_PATH_REGEX_EVENTS = "^/v1.0/users/[^/]*/(((calendars/[^/]*/)?events.*)|(calendar/calendarView(?)[^/]*))"; - - static final List OUTLOOK_CALENDAR_ENDPOINTS = Arrays.asList(getMailboxSettings(ENTRA_ID_REGEX_USERS), - EVENT_TRANSFORMS.toBuilder() - .pathRegex(OUTLOOK_CALENDAR_PATH_REGEX_EVENTS) - .build() - ); - - static final Rules2 OUTLOOK_CALENDAR = ENTRA_ID.withAdditionalEndpoints(OUTLOOK_CALENDAR_ENDPOINTS); - - static final Transform REDACT_CALENDAR_ODATA_LINKS = - Transform.Redact.builder() - .jsonPath("$..['calendar@odata.associationLink', 'calendar@odata.navigationLink']") - .build(); - - static final List OUTLOOK_CALENDAR_NO_APP_IDS_ENDPOINTS = Arrays.asList(getMailboxSettings(ENTRA_ID_REGEX_USERS_BY_PSEUDO), - Endpoint.builder() - .pathRegex(ENTRA_ID_REGEX_USERS_BY_PSEUDO + "/(((calendars/[^/]*/)?events.*)|(calendar/calendarView(?)[^/]*))") - .transforms(Streams.concat(EVENT_TRANSFORMS.getTransforms().stream(), - Stream.of(TOKENIZE_ODATA_LINKS, REDACT_ODATA_CONTEXT, REDACT_CALENDAR_ODATA_LINKS)) - .collect(Collectors.toList())) - .build()); - - static final Rules2 OUTLOOK_CALENDAR_NO_APP_IDS = - ENTRA_ID_NO_MSFT_IDS - .withAdditionalEndpoints(OUTLOOK_CALENDAR_NO_APP_IDS_ENDPOINTS); - - static final Rules2 OUTLOOK_CALENDAR_NO_APP_IDS_NO_GROUPS = ENTRA_ID_NO_MSFT_IDS_NO_GROUPS - .withAdditionalEndpoints(OUTLOOK_CALENDAR_NO_APP_IDS_ENDPOINTS); - - static final String MS_TEAMS_PATH_TEMPLATES_TEAMS = "/v1.0/teams"; // + // path templates referenced by test @Description annotations + static final String MS_TEAMS_PATH_TEMPLATES_TEAMS = "/v1.0/teams"; static final String MS_TEAMS_PATH_TEMPLATES_TEAMS_ALL_CHANNELS = "/v1.0/teams/{teamId}/allChannels"; static final String MS_TEAMS_PATH_TEMPLATES_USERS_CHATS = "/v1.0/users/{userId}/chats"; static final String MS_TEAMS_PATH_TEMPLATES_TEAMS_CHANNELS_MESSAGES = "/v1.0/teams/{teamId}/channels/{channelId}/messages"; static final String MS_TEAMS_PATH_TEMPLATES_TEAMS_CHANNELS_MESSAGES_DELTA = "/v1.0/teams/{teamId}/channels/{channelId}/messages/delta"; static final String MS_TEAMS_PATH_TEMPLATES_CHATS_MESSAGES = "/v1.0/chats/{chatId}/messages"; static final String MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALLS = "/v1.0/communications/calls/{callId}"; - /* - Unfortunately, we have to use regex expression here. - If we use pathTemplate here: /{apiVersion}/communications/callRecords/{callChainId} - internally it would convert into - following regular expression: ^/(?[^/]+)/communications/callRecords/(?[^/]+)$ - and due to greedy nature of regular expression all endpoints below would match to regex above: - - E.g. - /v1.0/communications/callRecords/e523d2ed-2966-4b6b-925b-754a88034cc5 - /v1.0/communications/callRecords/e523d2ed-2966-4b6b-925b-754a88034cc5?$expand=sessions($expand=segments) - /v1.0/communications/callRecords/getDirectRoutingCalls(fromDateTime=2019-11-01,toDateTime=2019-12-01) - /v1.0/communications/callRecords/getPstnCalls(fromDateTime=2019-11-01,toDateTime=2019-12-01) - /v1.0/communications/callRecords/getDirectRoutingCalls(fromDateTime=2019-11-01,toDateTime=2019-12-01)$expand=sessions($expand=segments) - /v1.0/communications/callRecords/getPstnCalls(fromDateTime=2019-11-01,toDateTime=2019-12-01)$expand=sessions($expand=segments) - /v1.0/communications/callRecords/getDirectRoutingCalls(fromDateTime=2019-11-01,toDateTime=2019-12-01)$skip=100 - /v1.0/communications/callRecords/getPstnCalls(fromDateTime=2019-11-01,toDateTime=2019-12-01)$skip=100 - - As you can see, first two are correct, but rest are completely different endpoints and should not match. - - So, following regular expression can handle this case: - 1. Match URL: ^/v1.0/communications/callRecords/ - 2. Match ID: (?[({]?[a-fA-F0-9]{8}[-]?([a-fA-F0-9]{4}[-]?){3}[a-fA-F0-9]{12}[})]?) - 2. Match GraphQL query parameters: (?\?[a-zA-z0-9\s\$\=\(\)]*) - */ - static final String MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALL_RECORDS_REGEX = "^/v1.0/communications/callRecords(/(?[({]?[a-fA-F0-9]{8}[-]?([a-fA-F0-9]{4}[-]?){3}[a-fA-F0-9]{12}[})]?))?(?[a-zA-z0-9\\s\\$\\=\\?\\(\\)]*)"; + static final String MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALL_RECORDS_REGEX = "^/v1.0/communications/callRecords/[({]?[a-fA-F0-9]{8}[-]?([a-fA-F0-9]{4}[-]?){3}[a-fA-F0-9]{12}[})]?(\\?.*)?$"; + static final String MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALL_RECORDS_LIST_REGEX = "^/v1.0/communications/callRecords(\\?.*)?$"; static final String MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALL_RECORDS_GET_DIRECT_ROUTING_CALLS = "/v1.0/communications/callRecords/getDirectRoutingCalls(fromDateTime={startDate},toDateTime={endDate})"; static final String MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALL_RECORDS_GET_PSTN_CALLS = "/v1.0/communications/callRecords/getPstnCalls(fromDateTime={startDate},toDateTime={endDate})"; static final String MS_TEAMS_PATH_TEMPLATES_USERS_ONLINE_MEETINGS = "/v1.0/users/{userId}/onlineMeetings"; - static final String MS_TEAMS_PATH_TEMPLATES_USERS_ONLINE_MEETINGS_ATTENDANCE_REPORTS = "/v1.0/users/{userId}/onlineMeetings/{meetingId}/attendanceReports"; - static final String MS_TEAMS_PATH_TEMPLATES_USERS_ONLINE_MEETINGS_ATTENDANCE_REPORT = "/v1.0/users/{userId}/onlineMeetings/{meetingId}/attendanceReports/{reportId}"; - - static final Transform.Pseudonymize PSEUDONYMIZE_USER_ID = Transform.Pseudonymize.builder() - .jsonPath("$..user.id") - .jsonPath("$..userId") - .build(); - - static final Transform.Redact MS_TEAMS_TEAMS_REDACT = Transform.Redact.builder() - .jsonPath("$..displayName") - .jsonPath("$..description") - .build(); - - static final Transform.Pseudonymize MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE = Transform.Pseudonymize.builder() - .jsonPath("$..emailAddress") - .build(); - - static final Transform.Redact MS_TEAMS_USERS_CHATS_REDACT = Transform.Redact.builder() - .jsonPath("$..topic") - .jsonPath("$..['lastMessagePreview@odata.context']") - .build(); - static final Transform.Redact MS_TEAMS_TEAMS_ALL_CHANNELS_REDACT = Transform.Redact.builder() - .jsonPath("$..displayName") - .jsonPath("$..description") - .build(); - - static final Transform.Redact MS_TEAMS_CHATS_MESSAGES_REDACT = Transform.Redact.builder() - .jsonPath("$..user.displayName") - .jsonPath("$..body.content") - .jsonPath("$..attachments") - .jsonPath("$..mentions[*].mentionText") - .jsonPath("$..eventDetail.teamDescription") - .jsonPath("$..eventDetail.chatDisplayName") - .build(); - - static final Transform.Redact MS_TEAMS_COMMUNICATIONS_CALL_RECORDS_REDACT = Transform.Redact.builder() - .jsonPath("$..user.displayName") - .jsonPath("$..reflexiveIPAddress") - .jsonPath("$..relayIPAddress") - .jsonPath("$..ipAddress") - .jsonPath("$..subnet") - .jsonPath("$..macAddress") - .jsonPath("$..caller.name") - .jsonPath("$..callee.name") - .jsonPath("$..captureDeviceName") - .jsonPath("$..renderDeviceName") - // organizer_v2.id could contain user id, phone number, etc. - .jsonPath("$..organizer_v2.id") - .jsonPath("$..participants_v2[*].id") - .jsonPath("$..phone") - .jsonPath("$..['organizer_v2@odata.context']") - .build(); - - static final Transform.Redact MS_TEAMS_COMMUNICATIONS_CALLS_REDACT = Transform.Redact.builder() - .jsonPath("$..displayName") - .build(); - - static final Transform.Redact MS_TEAMS_COMMUNICATIONS_CALL_RECORDS_GET_DIRECT_ROUTING_CALLS_REDACT = Transform.Redact.builder() - .jsonPath("$..value[*].userPrincipalName") - .jsonPath("$..value[*].userDisplayName") - .jsonPath("$..value[*].callerNumber") - .jsonPath("$..value[*].calleeNumber") - .build(); - - static final Transform.Redact MS_TEAMS_COMMUNICATIONS_CALL_RECORDS_GET_PSTN_CALLS_REDACT = Transform.Redact.builder() - .jsonPath("$..value[*].userPrincipalName") - .jsonPath("$..value[*].userDisplayName") - .jsonPath("$..value[*].callerNumber") - .jsonPath("$..value[*].calleeNumber") - .build(); - static final Transform.Redact MS_TEAMS_USERS_ONLINE_MEETINGS_REDACT = Transform.Redact.builder() - .jsonPath("$..displayName") - .jsonPath("$..subject") - .jsonPath("$..joinInformation") - .jsonPath("$..joinMeetingIdSettings.isPasscodeRequired") - .jsonPath("$..joinMeetingIdSettings.passcode") - .jsonPath("$..upn") - .build(); - - static final Transform.Tokenize MS_TEAMS_CALL_ID_TOKENIZATION = Transform.Tokenize.builder() - .jsonPath("$..callId") - .build(); - - static final Transform.Tokenize MS_TEAMS_CHAT_ID_TOKENIZATION = Transform.Tokenize.builder() - .jsonPath("$..chatId") - .build(); - - static final Endpoint MS_TEAMS_TEAMS = Endpoint.builder() - .pathTemplate(MS_TEAMS_PATH_TEMPLATES_TEAMS) - .allowedQueryParams(List.of("$select", "$top", "$skiptoken", "$filter", "$count")) - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .build(); - - static final Endpoint MS_TEAMS_TEAMS_ALL_CHANNELS = Endpoint.builder() - .pathTemplate(MS_TEAMS_PATH_TEMPLATES_TEAMS_ALL_CHANNELS) - .allowedQueryParams(List.of("$select", "$filter")) - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .build(); - - static final Endpoint MS_TEAMS_USERS_CHATS = Endpoint.builder() - .pathTemplate(MS_TEAMS_PATH_TEMPLATES_USERS_CHATS) - .allowedQueryParams(List.of("$select", "$top", "$skiptoken", "$filter", "$orderby", "$expand")) - .allowedRequestHeaders(CONSISTENCY_LEVEL_HEADER) - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .transform(MS_TEAMS_TEAMS_REDACT) - .build(); - - static final Endpoint MS_TEAMS_TEAMS_CHANNELS_MESSAGES = Endpoint.builder() - .pathTemplate(MS_TEAMS_PATH_TEMPLATES_TEAMS_CHANNELS_MESSAGES) - .allowedQueryParams(List.of("$select", "$top", "$skiptoken", "$expand")) - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .build(); - - static final Endpoint MS_TEAMS_TEAMS_CHANNELS_MESSAGES_DELTA = Endpoint.builder() - .pathTemplate(MS_TEAMS_PATH_TEMPLATES_TEAMS_CHANNELS_MESSAGES_DELTA) - .allowedQueryParams(List.of("$select", "$top", "$skiptoken", "$expand", "$deltatoken", "$filter")) - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .build(); - - static final Endpoint MS_TEAMS_CHATS_MESSAGES = Endpoint.builder() - .pathTemplate(MS_TEAMS_PATH_TEMPLATES_CHATS_MESSAGES) - .allowedQueryParams(List.of("$select", "$top", "$skiptoken", "$filter", "$orderby", "$count", "$expand", "$format", "$search", "$skip")) - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .build(); - - static final Endpoint MS_TEAMS_COMMUNICATIONS_CALLS = Endpoint.builder() - .pathTemplate(MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALLS) - .allowedQueryParams(List.of("$select", "$top", "$expand")) - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .build(); - - static final Endpoint MS_TEAMS_COMMUNICATIONS_CALL_RECORDS = Endpoint.builder() - .pathRegex(MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALL_RECORDS_REGEX) - .allowedQueryParams(List.of("$select", "$expand", "$filter")) - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .build(); - - static final Endpoint MS_TEAMS_COMMUNICATIONS_CALL_RECORDS_GET_DIRECT_ROUTING_CALLS = Endpoint.builder() - .pathTemplate(MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALL_RECORDS_GET_DIRECT_ROUTING_CALLS) - .allowedQueryParams(List.of("$skip")) - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .build(); - - static final Endpoint MS_TEAMS_COMMUNICATIONS_CALL_RECORDS_GET_PSTN_CALLS = Endpoint.builder() - .pathTemplate(MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALL_RECORDS_GET_PSTN_CALLS) - .allowedQueryParams(List.of("$skip")) - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .transform(MS_TEAMS_CALL_ID_TOKENIZATION) - .build(); - - static final Endpoint MS_TEAMS_USERS_ONLINE_MEETINGS = Endpoint.builder() - .pathTemplate(MS_TEAMS_PATH_TEMPLATES_USERS_ONLINE_MEETINGS) - .allowedQueryParams(List.of("$select", "$top", "$skiptoken", "$filter", "$orderby", "$count", "$expand", "$format", "$search", "$skip")) - .transform(REDACT_ODATA_CONTEXT) - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .build(); - - static final Endpoint MS_TEAMS_USERS_ONLINE_MEETINGS_ATTENDANCE_REPORTS = Endpoint.builder() - .pathTemplate(MS_TEAMS_PATH_TEMPLATES_USERS_ONLINE_MEETINGS_ATTENDANCE_REPORTS) - .allowedQueryParams(List.of("$select", "$top", "$skiptoken", "$filter", "$orderby", "$count", "$expand", "$format", "$search", "$skip")) - .transform(REDACT_ODATA_CONTEXT) - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .build(); - - static final Endpoint MS_TEAMS_USERS_ONLINE_MEETINGS_ATTENDANCE_REPORT = Endpoint.builder() - .pathTemplate(MS_TEAMS_PATH_TEMPLATES_USERS_ONLINE_MEETINGS_ATTENDANCE_REPORT) - .allowedQueryParams(List.of("$select", "$top", "$skiptoken", "$filter", "$orderby", "$count", "$expand", "$format", "$search", "$skip")) - .transform(REDACT_ODATA_CONTEXT) - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .build(); - - static final Rules2 MS_TEAMS_BASE = Rules2.builder() - .endpoint(MS_TEAMS_TEAMS) - .endpoint(MS_TEAMS_TEAMS_ALL_CHANNELS) - .endpoint(MS_TEAMS_USERS_CHATS) - .endpoint(MS_TEAMS_TEAMS_CHANNELS_MESSAGES) - .endpoint(MS_TEAMS_TEAMS_CHANNELS_MESSAGES_DELTA) - .endpoint(MS_TEAMS_CHATS_MESSAGES) - .endpoint(MS_TEAMS_COMMUNICATIONS_CALLS) - .endpoint(MS_TEAMS_COMMUNICATIONS_CALL_RECORDS) - .endpoint(MS_TEAMS_COMMUNICATIONS_CALL_RECORDS_GET_DIRECT_ROUTING_CALLS) - .endpoint(MS_TEAMS_COMMUNICATIONS_CALL_RECORDS_GET_PSTN_CALLS) - .endpoint(MS_TEAMS_USERS_ONLINE_MEETINGS) - .endpoint(MS_TEAMS_USERS_ONLINE_MEETINGS_ATTENDANCE_REPORTS) - .endpoint(MS_TEAMS_USERS_ONLINE_MEETINGS_ATTENDANCE_REPORT) - .build(); - - static final Rules2 MS_TEAMS = MS_TEAMS_BASE - .withAdditionalEndpoints(ENTRA_ID_USERS) - .withTransformByEndpointTemplate(MS_TEAMS_PATH_TEMPLATES_TEAMS, MS_TEAMS_TEAMS_REDACT) - .withTransformByEndpointTemplate(MS_TEAMS_PATH_TEMPLATES_TEAMS_ALL_CHANNELS, MS_TEAMS_TEAMS_ALL_CHANNELS_REDACT) - .withTransformByEndpointTemplate(MS_TEAMS_PATH_TEMPLATES_USERS_CHATS, MS_TEAMS_USERS_CHATS_REDACT, MS_TEAMS_CHATS_MESSAGES_REDACT) - .withTransformByEndpointTemplate(MS_TEAMS_PATH_TEMPLATES_TEAMS_CHANNELS_MESSAGES, MS_TEAMS_CHATS_MESSAGES_REDACT) - .withTransformByEndpointTemplate(MS_TEAMS_PATH_TEMPLATES_TEAMS_CHANNELS_MESSAGES_DELTA, MS_TEAMS_CHATS_MESSAGES_REDACT) - .withTransformByEndpointTemplate(MS_TEAMS_PATH_TEMPLATES_CHATS_MESSAGES, MS_TEAMS_CHATS_MESSAGES_REDACT) - .withTransformByEndpointTemplate(MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALLS, MS_TEAMS_COMMUNICATIONS_CALLS_REDACT) - .withTransformByEndpoint(MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALL_RECORDS_REGEX, MS_TEAMS_COMMUNICATIONS_CALL_RECORDS_REDACT) - .withTransformByEndpointTemplate(MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALL_RECORDS_GET_DIRECT_ROUTING_CALLS, MS_TEAMS_COMMUNICATIONS_CALL_RECORDS_GET_DIRECT_ROUTING_CALLS_REDACT) - .withTransformByEndpointTemplate(MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALL_RECORDS_GET_PSTN_CALLS, MS_TEAMS_COMMUNICATIONS_CALL_RECORDS_GET_PSTN_CALLS_REDACT) - .withTransformByEndpointTemplate(MS_TEAMS_PATH_TEMPLATES_USERS_ONLINE_MEETINGS_ATTENDANCE_REPORT, MS_TEAMS_USERS_ONLINE_MEETINGS_REDACT) - .withTransformByEndpointTemplate(MS_TEAMS_PATH_TEMPLATES_USERS_ONLINE_MEETINGS_ATTENDANCE_REPORTS, MS_TEAMS_USERS_ONLINE_MEETINGS_REDACT) - .withTransformByEndpointTemplate(MS_TEAMS_PATH_TEMPLATES_USERS_ONLINE_MEETINGS, MS_TEAMS_USERS_ONLINE_MEETINGS_REDACT); - - static final Rules2 MS_TEAMS_NO_USER_ID = Rules2.builder() - .endpoint(MS_TEAMS_TEAMS.withTransforms(Arrays.asList(PSEUDONYMIZE_USER_ID, - MS_TEAMS_TEAMS_REDACT - .toBuilder() - .jsonPaths(REDACT_ODATA_CONTEXT.getJsonPaths()) - .jsonPaths(REDACT_ODATA_ID.getJsonPaths()) - .jsonPaths(REDACT_ODATA_TYPE.getJsonPaths()) - .jsonPaths(REDACT_ODATA_COUNT.getJsonPaths()) - .build()))) - .endpoint(MS_TEAMS_TEAMS_ALL_CHANNELS.withTransforms(Arrays.asList(PSEUDONYMIZE_USER_ID, - MS_TEAMS_TEAMS_ALL_CHANNELS_REDACT - .toBuilder() - .jsonPaths(REDACT_ODATA_CONTEXT.getJsonPaths()) - .jsonPaths(REDACT_ODATA_ID.getJsonPaths()) - .jsonPaths(REDACT_ODATA_TYPE.getJsonPaths()) - .jsonPaths(REDACT_ODATA_COUNT.getJsonPaths()) - .build()))) - .endpoint(Endpoint.builder() - .pathRegex(ENTRA_ID_REGEX_USERS_BY_PSEUDO + "/chats(\\?.*)?") - .allowedRequestHeaders(CONSISTENCY_LEVEL_HEADER) - .transforms(Arrays.asList(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE, - // id of the chat may contain MSFT user GUIDS - Transform.Tokenize.builder() - .jsonPath("$..id") - .build(), - MS_TEAMS_USERS_CHATS_REDACT - .toBuilder() - .jsonPaths(REDACT_ODATA_CONTEXT.getJsonPaths()) - .jsonPaths(REDACT_ODATA_COUNT.getJsonPaths()) - .jsonPaths(PSEUDONYMIZE_USER_ID.getJsonPaths()) - .build(), - // Next link could contain user id + chat id - TOKENIZE_ODATA_LINKS, - MS_TEAMS_CHATS_MESSAGES_REDACT)) - .build()) - .endpoint(MS_TEAMS_TEAMS_CHANNELS_MESSAGES.withTransforms(Arrays.asList(PSEUDONYMIZE_USER_ID, - MS_TEAMS_CHATS_MESSAGES_REDACT - .toBuilder() - .jsonPaths(REDACT_ODATA_CONTEXT.getJsonPaths()) - .jsonPaths(REDACT_ODATA_COUNT.getJsonPaths()) - .build()))) - .endpoint(MS_TEAMS_TEAMS_CHANNELS_MESSAGES_DELTA.withTransforms(Arrays.asList(PSEUDONYMIZE_USER_ID, - MS_TEAMS_CHATS_MESSAGES_REDACT - .toBuilder() - .jsonPaths(REDACT_ODATA_CONTEXT.getJsonPaths()) - .jsonPaths(REDACT_ODATA_COUNT.getJsonPaths()) - .build()))) - .endpoint(Endpoint.builder() - .pathRegex("^/v1.0/chats/(/p~[a-zA-Z0-9_-]+?)?[^/]*/messages(\\?.*)?") - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .transform(MS_TEAMS_TEAMS_REDACT) - .transform(MS_TEAMS_CHATS_MESSAGES_REDACT) - .transform(PSEUDONYMIZE_USER_ID) - .transform(MS_TEAMS_CHAT_ID_TOKENIZATION) - // Chat message id could contain MSFT user guids - .transform(getTokenizeWithExpressionForLinks("chats/(.*)/messages(\\?.*)")) - .transform(REDACT_ODATA_CONTEXT) - .transform(REDACT_ODATA_COUNT) - .build()) - .endpoint(MS_TEAMS_COMMUNICATIONS_CALLS.withTransforms(Arrays.asList(PSEUDONYMIZE_USER_ID, - MS_TEAMS_COMMUNICATIONS_CALLS_REDACT - .toBuilder() - .jsonPaths(REDACT_ODATA_CONTEXT.getJsonPaths()) - .jsonPaths(REDACT_ODATA_COUNT.getJsonPaths()) - .jsonPaths(REDACT_ODATA_TYPE.getJsonPaths()) - .build()))) - .endpoint(MS_TEAMS_COMMUNICATIONS_CALL_RECORDS.withTransforms(Arrays.asList(PSEUDONYMIZE_USER_ID, - MS_TEAMS_COMMUNICATIONS_CALL_RECORDS_REDACT - .toBuilder() - .jsonPaths(REDACT_ODATA_CONTEXT.getJsonPaths()) - .jsonPaths(REDACT_ODATA_TYPE.getJsonPaths()) - .build()))) - .endpoint(MS_TEAMS_COMMUNICATIONS_CALL_RECORDS_GET_DIRECT_ROUTING_CALLS.withTransforms(Arrays.asList(PSEUDONYMIZE_USER_ID, - MS_TEAMS_COMMUNICATIONS_CALL_RECORDS_GET_DIRECT_ROUTING_CALLS_REDACT - .toBuilder() - .jsonPaths(REDACT_ODATA_CONTEXT.getJsonPaths()) - .jsonPaths(REDACT_ODATA_TYPE.getJsonPaths()) - .jsonPaths(REDACT_ODATA_COUNT.getJsonPaths()) - .build()))) - .endpoint(MS_TEAMS_COMMUNICATIONS_CALL_RECORDS_GET_PSTN_CALLS.withTransforms(Arrays.asList(PSEUDONYMIZE_USER_ID, - MS_TEAMS_CALL_ID_TOKENIZATION, - MS_TEAMS_COMMUNICATIONS_CALL_RECORDS_GET_PSTN_CALLS_REDACT - .toBuilder() - .jsonPaths(REDACT_ODATA_CONTEXT.getJsonPaths()) - .jsonPaths(REDACT_ODATA_TYPE.getJsonPaths()) - .jsonPaths(REDACT_ODATA_COUNT.getJsonPaths()) - .build()))) - .endpoint(Endpoint.builder() - .pathRegex(ENTRA_ID_REGEX_USERS_BY_PSEUDO + "/onlineMeetings/[a-zA-Z0-9_-]+/attendanceReports/[a-zA-Z0-9_-]+(\\?.*)?") - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .transform(Transform.Pseudonymize.builder() - .jsonPath("$..identity.id") - .build()) - .transform(PSEUDONYMIZE_USER_ID) - .transform(MS_TEAMS_USERS_ONLINE_MEETINGS_REDACT) - .transform(REDACT_ODATA_CONTEXT) - .transform(REDACT_ODATA_TYPE) - .transform(TOKENIZE_ODATA_LINKS) - .build()) - .endpoint(Endpoint.builder() - .pathRegex(ENTRA_ID_REGEX_USERS_BY_PSEUDO + "/onlineMeetings/[a-zA-Z0-9_-]+/attendanceReports(\\?.*)?") - .transform(MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE) - .transform(Transform.Pseudonymize.builder() - .jsonPath("$..identity.id") - .build()) - .transform(PSEUDONYMIZE_USER_ID) - .transform(MS_TEAMS_USERS_ONLINE_MEETINGS_REDACT) - .transform(REDACT_ODATA_CONTEXT) - .transform(REDACT_ODATA_TYPE) - .transform(TOKENIZE_ODATA_LINKS) - .build()) - .endpoint(Endpoint.builder() - .pathRegex(ENTRA_ID_REGEX_USERS_BY_PSEUDO + "/onlineMeetings(\\?.*)?") - .transforms(Arrays.asList(PSEUDONYMIZE_USER_ID, - MS_TEAMS_TEAMS_DEFAULT_PSEUDONYMIZE, - Transform.Pseudonymize.builder() - .jsonPath("$..identity.id") - .build(), - TOKENIZE_ODATA_LINKS, - MS_TEAMS_USERS_ONLINE_MEETINGS_REDACT - .toBuilder() - .jsonPaths(REDACT_ODATA_CONTEXT.getJsonPaths()) - .jsonPaths(REDACT_ODATA_TYPE.getJsonPaths()) - .build())) - .build()) - .build() - .withAdditionalEndpoints(ENTRA_ID_USERS_NO_APP_IDS) - .withTransformByEndpoint(ENTRA_ID_REGEX_USERS_BY_PSEUDO, ENTRA_ID_USERS_NO_APP_IDS_TRANSFORM_RULE); static final String MS_COPILOT_INTERACTIONS_PATH = "/beta/copilot/users/{id}/interactionHistory/getAllEnterpriseInteractions"; - static final Transform.Redact MS_COPILOT_INTERACTIONS_REDACT = Transform.Redact.builder() - .jsonPath("$..displayName") - .jsonPath("$..contentUrl") - .jsonPath("$..attachments[*].name") - .jsonPath("$..attachments[*].contentUrl") - .jsonPath("$..mentions[*].mentionText") - // It may include URLs of Teams meetings - .jsonPath("$..contexts[*].contextReference") - // It may include file names, folders, etc - .jsonPath("$..links[?(@.linkType == 'File')].linkUrl") - .build(); + static final Rules2 ENTRA_ID = Rules2.load("sources/microsoft-365/entra-id/entra-id.yaml"); + static final Rules2 ENTRA_ID_NO_MSFT_IDS = Rules2.load("sources/microsoft-365/entra-id/entra-id_no-app-ids.yaml"); - static final Transform.Pseudonymize MS_COPILOT_PSEUDONYMIZE = Transform.Pseudonymize.builder() - .jsonPath("$..emailAddress") - .build(); + static final Rules2 OUTLOOK_CALENDAR = Rules2.load("sources/microsoft-365/outlook-cal/outlook-cal.yaml"); + static final Rules2 OUTLOOK_CALENDAR_NO_APP_IDS = Rules2.load("sources/microsoft-365/outlook-cal/outlook-cal_no-app-ids.yaml"); + static final Rules2 OUTLOOK_CALENDAR_NO_APP_IDS_NO_GROUPS = Rules2.load("sources/microsoft-365/outlook-cal/outlook-cal_no-app-ids_no-groups.yaml"); - static final Augment.TextDigest MS_COPILOT_AUGMENT_ATTACHMENT = Augment.TextDigest.builder() - .jsonPath("$..attachments[*].content") - .innerJsonPath("$..text") - .build(); + static final Rules2 OUTLOOK_MAIL = Rules2.load("sources/microsoft-365/outlook-mail/outlook-mail.yaml"); + static final Rules2 OUTLOOK_MAIL_NO_APP_IDS = Rules2.load("sources/microsoft-365/outlook-mail/outlook-mail_no-app-ids.yaml"); + static final Rules2 OUTLOOK_MAIL_NO_APP_IDS_NO_GROUPS = Rules2.load("sources/microsoft-365/outlook-mail/outlook-mail_no-app-ids_no-groups.yaml"); - static final Augment.TextDigest MS_COPILOT_AUGMENT_BODY = Augment.TextDigest.builder() - .jsonPath("$..body.content") - .build(); + static final Rules2 MS_TEAMS = Rules2.load("sources/microsoft-365/msft-teams/msft-teams.yaml"); + static final Rules2 MS_TEAMS_NO_APP_IDS = Rules2.load("sources/microsoft-365/msft-teams/msft-teams_no-app-ids.yaml"); - static final Transform.Redact MS_COPILOT_CONTENT_REDACT = Transform.Redact.builder() - .jsonPath("$..body.content") - .jsonPath("$..attachments[*].content") - .build(); - - static final Endpoint MS_COPILOT_INTERACTIONS = Endpoint.builder() - .pathTemplate(MS_COPILOT_INTERACTIONS_PATH) - .allowedQueryParams(List.of("$filter")) - .augment(MS_COPILOT_AUGMENT_ATTACHMENT) - .augment(MS_COPILOT_AUGMENT_BODY) - .transform(MS_COPILOT_PSEUDONYMIZE) - .transform(MS_COPILOT_INTERACTIONS_REDACT) - .transform(MS_COPILOT_CONTENT_REDACT) - .transform(REDACT_ODATA_CONTEXT) - .transform(REDACT_ODATA_COUNT) - .transform(REDACT_ODATA_TYPE) - .build(); - - static final Rules2 MS_COPILOT_BASE = Rules2.builder() - .endpoint(MS_COPILOT_INTERACTIONS) - .build(); - - static final Rules2 MS_COPILOT = MS_COPILOT_BASE - .withAdditionalEndpoints(ENTRA_ID_USERS) - .withTransformByEndpointTemplate(MS_COPILOT_INTERACTIONS_PATH); - - static final Rules2 MS_COPILOT_NO_USER_ID = Rules2.builder() - .endpoint(Endpoint.builder() - .pathRegex("^/beta/copilot/users/(/p~[a-zA-Z0-9_-]+?)?[^/]*/interactionHistory/getAllEnterpriseInteractions(\\?.*)?") - .transforms(Arrays.asList(MS_COPILOT_PSEUDONYMIZE, - // id of the chat may contain MSFT user GUIDS - Transform.Tokenize.builder() - .jsonPath("$..sessionId") - .jsonPath("$..attachments[*].attachmentId") - .build(), - Transform.Tokenize.builder() - .jsonPath("$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']") - .regex("^https://graph.microsoft.com/beta/copilot/users/([a-zA-Z0-9_-]+)/.*$") - .build(), - Transform.Pseudonymize.builder() - .jsonPath("$..from..[?(@.applicationIdentityType != \"bot\")].id") - .jsonPath("$..mentions[*][?(@.applicationIdentityType != \"bot\")].id") - .build(), - MS_COPILOT_CONTENT_REDACT, - MS_COPILOT_INTERACTIONS_REDACT - .toBuilder() - .jsonPaths(REDACT_ODATA_CONTEXT.getJsonPaths()) - .jsonPaths(REDACT_ODATA_COUNT.getJsonPaths()) - .jsonPaths(REDACT_ODATA_TYPE.getJsonPaths()) - .build())) - .augments(Arrays.asList(MS_COPILOT_AUGMENT_ATTACHMENT, MS_COPILOT_AUGMENT_BODY)) - .build()) - .build() - .withAdditionalEndpoints(ENTRA_ID_USERS_NO_APP_IDS) - .withTransformByEndpoint(ENTRA_ID_REGEX_USERS_BY_PSEUDO, ENTRA_ID_USERS_NO_APP_IDS_TRANSFORM_RULE); + static final Rules2 MS_COPILOT = Rules2.load("sources/microsoft-365/msft-copilot/msft-copilot.yaml"); + static final Rules2 MS_COPILOT_NO_APP_IDS = Rules2.load("sources/microsoft-365/msft-copilot/msft-copilot_no-app-ids.yaml"); static final RESTRules ONE_DRIVE = Rules2.load("sources/microsoft-365/msft-onedrive/msft-onedrive.yaml"); static final RESTRules ONE_DRIVE_NO_APP_IDS = Rules2.load("sources/microsoft-365/msft-onedrive/msft-onedrive_no-app-ids.yaml"); @@ -801,28 +56,10 @@ public class PrebuiltSanitizerRules { .put("outlook-mail" + ConfigRulesModule.NO_APP_IDS_SUFFIX, OUTLOOK_MAIL_NO_APP_IDS) .put("outlook-mail" + ConfigRulesModule.NO_APP_IDS_SUFFIX + "-no-groups", OUTLOOK_MAIL_NO_APP_IDS_NO_GROUPS) .put("msft-teams", MS_TEAMS) - .put("msft-teams" + ConfigRulesModule.NO_APP_IDS_SUFFIX, MS_TEAMS_NO_USER_ID) + .put("msft-teams" + ConfigRulesModule.NO_APP_IDS_SUFFIX, MS_TEAMS_NO_APP_IDS) .put("msft-copilot", MS_COPILOT) - .put("msft-copilot" + ConfigRulesModule.NO_APP_IDS_SUFFIX, MS_COPILOT_NO_USER_ID) + .put("msft-copilot" + ConfigRulesModule.NO_APP_IDS_SUFFIX, MS_COPILOT_NO_APP_IDS) .put("msft-onedrive", ONE_DRIVE) .put("msft-onedrive" + ConfigRulesModule.NO_APP_IDS_SUFFIX, ONE_DRIVE_NO_APP_IDS) .build(); - - private static Endpoint getMailboxSettings(String path) { - return Endpoint.builder() - .pathRegex(path + "/mailboxSettings") - .transform(Transform.Redact.builder() - .jsonPath("$..internalReplyMessage") - .jsonPath("$..externalReplyMessage") - .build()) - .transform(REDACT_ODATA_CONTEXT) - .build(); - } - - private static Transform.Tokenize getTokenizeWithExpressionForLinks(String regex) { - return Transform.Tokenize.builder() - .jsonPath("$.['@odata.nextLink', '@odata.prevLink', 'sessions@odata.nextLink']") - .regex("^https://graph.microsoft.com/v1.0/" + regex + ".*$") - .build(); - } } diff --git a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/CalendarTests.java b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/CalendarTests.java index 7b987c39b7..f76296b334 100644 --- a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/CalendarTests.java +++ b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/CalendarTests.java @@ -29,6 +29,7 @@ public class CalendarTests extends EntraIDTests { .sourceFamily("microsoft-365") .defaultScopeId("azure-ad") .sourceKind("outlook-cal") + .checkUncompressedSSMLength(false) .build(); @ParameterizedTest @@ -146,8 +147,9 @@ void calendarViewsWithOData(String apiVersion) { @ParameterizedTest @ValueSource(strings = {"v1.0"}) void event(String apiVersion) { + String eventId = "AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e-T7KzowPTAAAAAAENAAAiIsqMbYjsT5e-T7KzowPTAAAa_WKzAAA="; String endpoint = "https://graph.microsoft.com/" + apiVersion + - "/users/48d31887-5fad-4d73-a9f5-3c356e68a038/events"; + "/users/48d31887-5fad-4d73-a9f5-3c356e68a038/events/" + eventId; String jsonResponse = asJson("Event_" + apiVersion + ".json"); @@ -161,18 +163,18 @@ void event(String apiVersion) { String sanitized = sanitize(endpoint, jsonResponse); + // a bare single Event object (not `value[]`-wrapped) -- handled by GetEventResponse, + // whose pathRegex is disjoint from the collection endpoint's. + assertPseudonymized(sanitized, "engineering@M365x214355.onmicrosoft.com"); + assertPseudonymized(sanitized, "IrvinS@M365x214355.onmicrosoft.com"); assertRedacted(sanitized, "Irvin Sayers", + "engineering@M365x214355.onmicrosoft.com", + "IrvinS@M365x214355.onmicrosoft.com", "New Product Regulations Touchpoint", //subject "New Product Regulations Strategy Online Touchpoint Meeting" //body ); - assertPseudonymized(sanitized, - "engineering@M365x214355.onmicrosoft.com", - "IrvinS@M365x214355.onmicrosoft.com" - ); - - assertNotSanitized(jsonResponse, EVENT_FIELDS_TO_REDACT); assertRedacted(sanitized, EVENT_FIELDS_TO_REDACT); } @@ -184,6 +186,7 @@ public void mailboxSettings(String apiVersion) { "/users/48d31887-5fad-4d73-a9f5-3c356e68a038/mailboxSettings"; assertUrlAllowed(endpoint); + assertUrlWithQueryParamsAllowed(endpoint); assertUrlWithSubResourcesBlocked(endpoint); } @@ -241,8 +244,32 @@ public Stream getExamples() { // "CalendarView_v1.0.json"), InvocationExample.of("https://graph.microsoft.com/v1.0/users/48d31887-5fad-4d73-a9f5-3c356e68a038/events", "Events_v1.0.json"), + // events - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/users/48d31887-5fad-4d73-a9f5-3c356e68a038/events?arbitraryTestParam=shouldBeAllowed", + "Events_v1.0.json"), + // events pagination - real shape of @odata.nextLink from this fixture's own captured response + InvocationExample.of("https://graph.microsoft.com/v1.0/users/48d31887-5fad-4d73-a9f5-3c356e68a038/events?%24top=10&%24skip=10", + "Events_v1.0.json"), + // calendars/{id}/events pagination - real shape of @odata.nextLink from this fixture's own captured response + InvocationExample.of("https://graph.microsoft.com/v1.0/users/48d31887-5fad-4d73-a9f5-3c356e68a038/calendars/AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e-T7KzowPTAAAAAAEGAAAiIsqMbYjsT5e-T7KzowPTAAABuC35AAA=/events?%24top=10&%24skip=10", + "CalendarEvents_v1.0.json"), + // calendarView - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/users/48d31887-5fad-4d73-a9f5-3c356e68a038/calendar/calendarView?arbitraryTestParam=shouldBeAllowed", + "CalendarView_v1.0.json"), InvocationExample.of("https://graph.microsoft.com/v1.0/users/48d31887-5fad-4d73-a9f5-3c356e68a038/events/asdfasdf", - "Event_v1.0.json") + "Event_v1.0.json"), + // events/{id} - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/users/48d31887-5fad-4d73-a9f5-3c356e68a038/events/asdfasdf?arbitraryTestParam=shouldBeAllowed", + "Event_v1.0.json"), + InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315", "group.json"), + // groups/{id} - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315?arbitraryTestParam=shouldBeAllowed", "group.json"), + // users/{id} - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/users/48d31887-5fad-4d73-a9f5-3c356e68a038?$select=id,mail", "user.json"), + // groups/{id}/members - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315/members?$top=50&$select=id&$skiptoken=abcXYZ123&$orderBy=id&$count=true", "group-members.json"), + // users (collection) - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/users?$top=50&$select=id,mail&$skiptoken=abcXYZ123&$orderBy=id&$count=true&$filter=startswith(userPrincipalName,'a')", "users.json") ); } } diff --git a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Calendar_NoAppIds_NoGroups_Tests.java b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Calendar_NoAppIds_NoGroups_Tests.java index e7fe59d145..5b09cf0b58 100644 --- a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Calendar_NoAppIds_NoGroups_Tests.java +++ b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Calendar_NoAppIds_NoGroups_Tests.java @@ -6,6 +6,8 @@ import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; +import java.util.stream.Stream; + //TODO: fix this re-use via inheritance; makes tests brittle; we should inject this rule set into // the directory tests, or something like that public class Calendar_NoAppIds_NoGroups_Tests extends Calendar_NoAppIds_Tests { @@ -20,6 +22,7 @@ public class Calendar_NoAppIds_NoGroups_Tests extends Calendar_NoAppIds_Tests { .sourceKind("outlook-cal") .rulesFile("outlook-cal_no-app-ids_no-groups") .exampleSanitizedApiResponsesPath("example-api-responses/sanitized_no-app-ids_no-groups/") + .checkUncompressedSSMLength(false) .build(); @Override @@ -41,4 +44,12 @@ void groupMembers() { String endpoint = "https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315/members?$count=true"; assertUrlWithQueryParamsBlocked(endpoint); } + + @Override + public Stream getExamples() { + // groups/{id}/members has no registered endpoint at all in this "no-groups" variant + // (unlike groups/{id}, which is registered but blocks query params), so the parent's + // combined-params example for it can't be reused here. + return super.getExamples().filter(example -> !example.getPlainExampleFile().equals("group-members.json")); + } } \ No newline at end of file diff --git a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Calendar_NoAppIds_Tests.java b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Calendar_NoAppIds_Tests.java index 8b70bdd975..3d3bc899a2 100644 --- a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Calendar_NoAppIds_Tests.java +++ b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Calendar_NoAppIds_Tests.java @@ -25,6 +25,7 @@ public class Calendar_NoAppIds_Tests extends EntraIDTests { .sourceKind("outlook-cal") .rulesFile("outlook-cal_no-app-ids") .exampleSanitizedApiResponsesPath("example-api-responses/sanitized_no-app-ids/") + .checkUncompressedSSMLength(false) .build(); @Test @@ -125,8 +126,9 @@ void calendarViewsWithOData() { @Test void event() { + String eventId = "AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e-T7KzowPTAAAAAAENAAAiIsqMbYjsT5e-T7KzowPTAAAa_WKzAAA="; String endpoint = "https://graph.microsoft.com/" + "v1.0" + - "/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/events"; + "/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/events/" + eventId; String jsonResponse = asJson("Event_" + "v1.0" + ".json"); @@ -140,16 +142,17 @@ void event() { String sanitized = sanitize(endpoint, jsonResponse); + // a bare single Event object (not `value[]`-wrapped) -- handled by GetEventResponse, + // whose pathRegex is disjoint from the collection endpoint's. + assertPseudonymized(sanitized, "engineering@M365x214355.onmicrosoft.com"); + assertPseudonymized(sanitized, "IrvinS@M365x214355.onmicrosoft.com"); assertRedacted(sanitized, "Irvin Sayers", + "engineering@M365x214355.onmicrosoft.com", + "IrvinS@M365x214355.onmicrosoft.com", "New Product Regulations Touchpoint", //subject "New Product Regulations Strategy Online Touchpoint Meeting" //body ); - - assertPseudonymized(sanitized, - "engineering@M365x214355.onmicrosoft.com", - "IrvinS@M365x214355.onmicrosoft.com" - ); } @Test @@ -158,6 +161,7 @@ public void mailboxSettings() { "/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/mailboxSettings"; assertUrlAllowed(endpoint); + assertUrlWithQueryParamsAllowed(endpoint); assertUrlWithSubResourcesBlocked(endpoint); } @@ -212,8 +216,29 @@ public Stream getExamples() { // "CalendarView_v1.0.json"), InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/events", "Events_v1.0.json"), + // events - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/events?arbitraryTestParam=shouldBeAllowed", + "Events_v1.0.json"), + // events pagination - real shape of @odata.nextLink from this fixture's own captured response + InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/events?%24top=10&%24skip=10", + "Events_v1.0.json"), + // calendars/{id}/events pagination - real shape of @odata.nextLink from this fixture's own captured response + InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/calendars/AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e-T7KzowPTAAAAAAEGAAAiIsqMbYjsT5e-T7KzowPTAAABuC35AAA=/events?%24top=10&%24skip=10", + "CalendarEvents_v1.0.json"), + // calendarView - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/calendar/calendarView?arbitraryTestParam=shouldBeAllowed", + "CalendarView_v1.0.json"), InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/events/asdfasdf", - "Event_v1.0.json") + "Event_v1.0.json"), + // events/{id} - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/events/asdfasdf?arbitraryTestParam=shouldBeAllowed", + "Event_v1.0.json"), + // users/{id} - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug?$select=id,mail", "user.json"), + // groups/{id}/members - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315/members?$top=50&$select=id&$skiptoken=abcXYZ123&$orderBy=id&$count=true", "group-members.json"), + // users (collection) - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/users?$top=50&$select=id,mail&$skiptoken=abcXYZ123&$orderBy=id&$count=true&$filter=startswith(userPrincipalName,'a')", "users.json") ); } } \ No newline at end of file diff --git a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/CopilotTests.java b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/CopilotTests.java index 321cbce82c..500e6b8bfe 100644 --- a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/CopilotTests.java +++ b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/CopilotTests.java @@ -20,6 +20,7 @@ public RulesTestSpec getRulesTestSpec() { return RulesTestSpec.builder() .sourceFamily("microsoft-365") .sourceKind("msft-copilot") + .checkUncompressedSSMLength(false) .build(); } @@ -55,7 +56,25 @@ public Stream getExamples() { InvocationExample.of(baseEndpoint + "/copilot/users/8b081ef6-4792-4def-b2c9-c363a1bf41d5/interactionHistory/getAllEnterpriseInteractions", "response_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/copilot/users/8b081ef6-4792-4def-b2c9-c363a1bf41d5/interactionHistory/getAllEnterpriseInteractions", - "response_with_team_meeting_" + apiVersion + ".json") + "response_with_team_meeting_" + apiVersion + ".json"), + // interactionHistory - with all allowed query params + InvocationExample.of(baseEndpoint + "/copilot/users/8b081ef6-4792-4def-b2c9-c363a1bf41d5/interactionHistory/getAllEnterpriseInteractions?$filter=createdDateTime%20ge%202020-01-01T00:00:00Z", + "response_" + apiVersion + ".json"), + // interactionHistory - real shape sent by CopilotInteractionFetchStrategy ($top + compound gt-and-lt date-range $filter together) + InvocationExample.of(baseEndpoint + "/copilot/users/8b081ef6-4792-4def-b2c9-c363a1bf41d5/interactionHistory/getAllEnterpriseInteractions?$top=100&$filter=createdDateTime%20gt%202020-01-01T00:00:00Z%20and%20createdDateTime%20lt%202020-06-01T00:00:00Z", + "response_" + apiVersion + ".json"), + // interactionHistory pagination - real shape of @odata.nextLink from response_beta.json's own + // captured response ($filter+$skiptoken together, never tested as this combo before) + InvocationExample.of(baseEndpoint + "/copilot/users/8b081ef6-4792-4def-b2c9-c363a1bf41d5/interactionHistory/getAllEnterpriseInteractions?$filter=appClass+eq+%27IPM.SkypeTeams.Message.Copilot.BizChat%27&$skiptoken=U2tpcFZhbHVlPTAjTWFpbGJveEZvbGRlcj1NYWlsRm9sZGVycy9UZWFtQ2hhdA%3d%3d", + "response_" + apiVersion + ".json"), + // interactionHistory pagination - real shape of @odata.nextLink from response_with_team_meeting_beta.json's + // own captured response ($skiptoken alone, no $filter) + InvocationExample.of(baseEndpoint + "/copilot/users/8b081ef6-4792-4def-b2c9-c363a1bf41d5/interactionHistory/getAllEnterpriseInteractions?$skiptoken=U2tpcFZhbHVlPTEwI01haWxib3hGb2xkZXI9TWFpbEZvbGRlcnMvVGVhbXNNZXNzYWdlc0RhdGE%3d", + "response_with_team_meeting_" + apiVersion + ".json"), + // /v1.0/users/{id} - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/users/8b081ef6-4792-4def-b2c9-c363a1bf41d5?$select=id,mail", "user.json"), + // /v1.0/users (collection) - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/users?$top=50&$select=id,mail&$skiptoken=abcXYZ123&$orderBy=id&$count=true&$filter=startswith(userPrincipalName,'a')", "users.json") ); } } diff --git a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/CopilotNoUserIdsTests.java b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Copilot_NoAppIds_Tests.java similarity index 71% rename from java/core/src/test/java/co/worklytics/psoxy/rules/msft/CopilotNoUserIdsTests.java rename to java/core/src/test/java/co/worklytics/psoxy/rules/msft/Copilot_NoAppIds_Tests.java index 3667517061..358bd5cd60 100644 --- a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/CopilotNoUserIdsTests.java +++ b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Copilot_NoAppIds_Tests.java @@ -14,9 +14,9 @@ import static org.junit.jupiter.api.Assertions.assertTrue; @Getter -public class CopilotNoUserIdsTests extends JavaRulesTestBaseCase { +public class Copilot_NoAppIds_Tests extends JavaRulesTestBaseCase { - final Rules2 rulesUnderTest = PrebuiltSanitizerRules.MS_COPILOT_NO_USER_ID; + final Rules2 rulesUnderTest = PrebuiltSanitizerRules.MS_COPILOT_NO_APP_IDS; private final static String SAMPLE_USER_ID = "p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug"; @@ -25,8 +25,9 @@ public RulesTestSpec getRulesTestSpec() { return RulesTestSpec.builder() .sourceFamily("microsoft-365") .sourceKind("msft-copilot") - .rulesFile("msft-copilot_no-userIds") - .exampleSanitizedApiResponsesPath("example-api-responses/sanitized_no-userIds/") + .rulesFile("msft-copilot_no-app-ids") + .exampleSanitizedApiResponsesPath("example-api-responses/sanitized_no-app-ids/") + .checkUncompressedSSMLength(false) .build(); } @@ -75,7 +76,17 @@ public Stream getExamples() { InvocationExample.of(baseEndpoint + "/copilot/users/" + SAMPLE_USER_ID + "/interactionHistory/getAllEnterpriseInteractions", "response_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/copilot/users/" + SAMPLE_USER_ID + "/interactionHistory/getAllEnterpriseInteractions", - "response_with_team_meeting_" + apiVersion + ".json") + "response_with_team_meeting_" + apiVersion + ".json"), + // interactionHistory - with all allowed query params + InvocationExample.of(baseEndpoint + "/copilot/users/" + SAMPLE_USER_ID + "/interactionHistory/getAllEnterpriseInteractions?$filter=createdDateTime%20ge%202020-01-01T00:00:00Z", + "response_" + apiVersion + ".json"), + // interactionHistory - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of(baseEndpoint + "/copilot/users/" + SAMPLE_USER_ID + "/interactionHistory/getAllEnterpriseInteractions?arbitraryTestParam=shouldBeAllowed", + "response_" + apiVersion + ".json"), + // /v1.0/users/{id} - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/users/" + SAMPLE_USER_ID + "?$select=id,mail", "user.json"), + // /v1.0/users (collection) - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/users?$top=50&$select=id,mail&$skiptoken=abcXYZ123&$orderBy=id&$count=true&$filter=startswith(userPrincipalName,'a')", "users.json") ); } } diff --git a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/EntraIDTests.java b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/EntraIDTests.java index c11392d465..b835eaa023 100644 --- a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/EntraIDTests.java +++ b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/EntraIDTests.java @@ -43,9 +43,12 @@ void user() { String sanitized = this.sanitize(endpoint, jsonString); - assertPseudonymized(sanitized, "MeganB@M365x214355.onmicrosoft.com"); - assertPseudonymized(sanitized, "megan@M365x214355.onmicrosoft.com"); //her alias + // single-user-by-id GET returns a bare object (not `value[]`-wrapped); the generated + // schema only matches the collection shape, so this endpoint sanitizes to an empty + // object. No production code path calls single-user-by-id. assertRedacted(sanitized, + "MeganB@M365x214355.onmicrosoft.com", + "megan@M365x214355.onmicrosoft.com", //her alias "Megan", "Bowen", "Megan Bowen", @@ -71,8 +74,10 @@ void users() { String sanitized = this.sanitize(endpoint, jsonString); assertPseudonymized(sanitized, "john@worklytics.onmicrosoft.com"); - assertPseudonymized(sanitized, "no-mail-example@worklytics.onmicrosoft.com"); - assertRedacted(sanitized, "Paul Allen"); + // "no-mail-example@worklytics.onmicrosoft.com" is that user's userPrincipalName (they have + // no mail); userPrincipalName isn't a modeled GraphUser field, so it's dropped entirely + // by the schema (not merely redacted-in-place). + assertRedacted(sanitized, "no-mail-example@worklytics.onmicrosoft.com", "Paul Allen"); } @@ -146,26 +151,45 @@ void groupMembers() { String sanitized = this.sanitize(endpoint, jsonString); + // GraphGroupMember only models "id"; name/mail/phone fields are dropped entirely + // (not merely redacted-in-place). assertRedacted(sanitized, + "Adele Vance", + "AdeleV@M365x214355.onmicrosoft.com", "Vance", "+1 425 555 0109", "+1 502 555 0144", - "Patti Fernandez" - ); - - assertPseudonymized(sanitized, - "AdeleV@M365x214355.onmicrosoft.com", + "Patti Fernandez", "PattiF@M365x214355.onmicrosoft.com" ); - } public Stream getExamples() { return Stream.of( InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315/members?$count=true", "group-members.json"), + // groups/{id}/members - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315/members?$top=50&$select=id&$skiptoken=abcXYZ123&$orderBy=id&$count=true", "group-members.json"), + // groups/{id}/members/{oDataType} - real shape sent by GroupMemberInput (oDataType path segment + $top=500&$select=id&$count=true) + InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315/members/microsoft.graph.user?$top=500&$select=id&$count=true", "group-members.json"), InvocationExample.of("https://graph.microsoft.com/v1.0/users/12398123012312", "user.json"), - InvocationExample.of("https://graph.microsoft.com/v1.0/users", "users.json") + // users/{id} - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/users/12398123012312?$select=id,mail", "user.json"), + InvocationExample.of("https://graph.microsoft.com/v1.0/users", "users.json"), + // users - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/users?$top=50&$select=id,mail&$skiptoken=abcXYZ123&$orderBy=id&$count=true&$filter=startswith(userPrincipalName,'a')", "users.json"), + InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315", "group.json"), + // groups/{id} - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315?arbitraryTestParam=shouldBeAllowed", "group.json"), + InvocationExample.of("https://graph.microsoft.com/v1.0/groups", "groups.json"), + // groups - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/groups?arbitraryTestParam=shouldBeAllowed", "groups.json"), + // groups - real shape sent by AzureADGroupInput ($select=id,mail,displayName&$top=) + InvocationExample.of("https://graph.microsoft.com/v1.0/groups?$select=id,mail,displayName&$top=100", "groups.json"), + // groups pagination - real shape of a page-2 request following @odata.nextLink (no captured + // fixture has a real nextLink for this endpoint; $skiptoken is the documented MSFT Graph + // continuation param, combined with the same $select/$top shape as the first page above) + InvocationExample.of("https://graph.microsoft.com/v1.0/groups?$select=id,mail,displayName&$top=100&$skiptoken=abcXYZ123", "groups.json") ); } } \ No newline at end of file diff --git a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/EntraID_NoAppIds_Tests.java b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/EntraID_NoAppIds_Tests.java index 2f76f6dc85..362919a8af 100644 --- a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/EntraID_NoAppIds_Tests.java +++ b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/EntraID_NoAppIds_Tests.java @@ -52,8 +52,11 @@ void user() { String sanitized = this.sanitize(endpoint, jsonString); - assertPseudonymized(sanitized, "MeganB@M365x214355.onmicrosoft.com"); + // single-user-by-id GET returns a bare object (not `value[]`-wrapped); the generated + // schema only matches the collection shape, so this endpoint sanitizes to an empty + // object. No production code path calls single-user-by-id. assertRedacted(sanitized, + "MeganB@M365x214355.onmicrosoft.com", "Megan", "Bowen", "Megan Bowen", @@ -76,7 +79,10 @@ void user_noAppIds() { String sanitized = this.sanitize(endpoint, jsonString); - assertReversibleUrlTokenized(sanitized, PII); + // single-user-by-id GET returns a bare object (not `value[]`-wrapped); the generated + // schema only matches the collection shape, so this endpoint sanitizes to an empty + // object. No production code path calls single-user-by-id. + assertRedacted(sanitized, PII); } @@ -127,9 +133,16 @@ void groupMembers_noAppIds() { public Stream getExamples() { return Stream.of( InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315/members?$count=true", "group-members.json"), + // groups/{id}/members - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315/members?$top=50&$select=id&$skiptoken=abcXYZ123&$orderBy=id&$count=true", "group-members.json"), InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug?%24select=proxyAddresses%2CotherMails%2ChireDate%2CisResourceAccount%2Cmail%2CemployeeId%2Cid%2CuserType%2CmailboxSettings%2CaccountEnabled", "user.json"), InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~12398123012312", "user.json"), - InvocationExample.of("https://graph.microsoft.com/v1.0/users", "users.json") + InvocationExample.of("https://graph.microsoft.com/v1.0/users", "users.json"), + // users - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/users?$top=50&$select=id,mail&$skiptoken=abcXYZ123&$orderBy=id&$count=true&$filter=startswith(userPrincipalName,'a')", "users.json"), + InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315", "group.json"), + // groups/{id} - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315?arbitraryTestParam=shouldBeAllowed", "group.json") ); } } \ No newline at end of file diff --git a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/MailTests.java b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/MailTests.java index 6343b7c677..80180088b9 100644 --- a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/MailTests.java +++ b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/MailTests.java @@ -18,6 +18,7 @@ public class MailTests extends JavaRulesTestBaseCase { .sourceFamily("microsoft-365") .defaultScopeId("azure-ad") .sourceKind("outlook-mail") + .checkUncompressedSSMLength(false) .build(); @ParameterizedTest @@ -101,7 +102,7 @@ public void mailboxSettings(String apiVersion) { ); assertUrlAllowed(endpoint); - assertUrlWithQueryParamsBlocked(endpoint); + assertUrlWithQueryParamsAllowed(endpoint); } @ParameterizedTest @@ -128,8 +129,23 @@ public void inboxBlocked(String apiVersion) { public Stream getExamples() { return Stream.of( InvocationExample.of("https://graph.microsoft.com/v1.0/users/48d31887-5fad-4d73-a9f5-3c356e68a038/mailboxSettings", "MailboxSettings_v1.0.json"), + // mailboxSettings - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/users/48d31887-5fad-4d73-a9f5-3c356e68a038/mailboxSettings?arbitraryTestParam=shouldBeAllowed", "MailboxSettings_v1.0.json"), InvocationExample.of("https://graph.microsoft.com/v1.0/users/48d31887-5fad-4d73-a9f5-3c356e68a038/messages/AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e-T7KzowPTAAAAAAEJAAAiIsqMbYjsT5e-T7KzowPTAAQSfAIWAAA=", "Message_v1.0.json"), - InvocationExample.of("https://graph.microsoft.com/v1.0/users/4ea7fc01-0264-4e84-b85e-9e49fba4de97/mailFolders('SentItems')/messages?$filter=SentDateTime+gt+2019-12-30T00%3a00%3a00Z+and+SentDateTime+lt+2022-05-16T00%3a00%3a00Z&%24top=10&$skip=10", "Messages_SentItems_v1.0.json") + // messages/{id} - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/users/48d31887-5fad-4d73-a9f5-3c356e68a038/messages/AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e-T7KzowPTAAAAAAEJAAAiIsqMbYjsT5e-T7KzowPTAAQSfAIWAAA=?arbitraryTestParam=shouldBeAllowed", "Message_v1.0.json"), + InvocationExample.of("https://graph.microsoft.com/v1.0/users/4ea7fc01-0264-4e84-b85e-9e49fba4de97/mailFolders('SentItems')/messages?$filter=SentDateTime+gt+2019-12-30T00%3a00%3a00Z+and+SentDateTime+lt+2022-05-16T00%3a00%3a00Z&%24top=10&$skip=10", "Messages_SentItems_v1.0.json"), + // mailFolders/SentItems/messages - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/users/4ea7fc01-0264-4e84-b85e-9e49fba4de97/mailFolders('SentItems')/messages?arbitraryTestParam=shouldBeAllowed", "Messages_SentItems_v1.0.json"), + InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315", "group.json"), + // groups/{id} - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315?arbitraryTestParam=shouldBeAllowed", "group.json"), + // users/{id} - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/users/48d31887-5fad-4d73-a9f5-3c356e68a038?$select=id,mail", "user.json"), + // groups/{id}/members - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315/members?$top=50&$select=id&$skiptoken=abcXYZ123&$orderBy=id&$count=true", "group-members.json"), + // users (collection) - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/users?$top=50&$select=id,mail&$skiptoken=abcXYZ123&$orderBy=id&$count=true&$filter=startswith(userPrincipalName,'a')", "users.json") ); } } \ No newline at end of file diff --git a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Mail_NoAppIds_NoGroups_Tests.java b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Mail_NoAppIds_NoGroups_Tests.java index 19ec510d35..e59f6c8c21 100644 --- a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Mail_NoAppIds_NoGroups_Tests.java +++ b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Mail_NoAppIds_NoGroups_Tests.java @@ -7,6 +7,8 @@ import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; +import java.util.stream.Stream; + //TODO: fix this re-use via inheritance; makes tests brittle; we should inject this rule set into // the directory tests, or something like that public class Mail_NoAppIds_NoGroups_Tests extends Mail_NoAppIds_Tests { @@ -21,6 +23,7 @@ public class Mail_NoAppIds_NoGroups_Tests extends Mail_NoAppIds_Tests { .sourceKind("outlook-mail") .rulesFile("outlook-mail_no-app-ids_no-groups") .exampleSanitizedApiResponsesPath("example-api-responses/sanitized_no-app-ids_no-groups/") + .checkUncompressedSSMLength(false) .build(); @Override @@ -42,4 +45,12 @@ void groupMembers() { String endpoint = "https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315/members?$count=true"; assertUrlWithQueryParamsBlocked(endpoint); } + + @Override + public Stream getExamples() { + // groups/{id}/members has no registered endpoint at all in this "no-groups" variant + // (unlike groups/{id}, which is registered but blocks query params), so the parent's + // combined-params example for it can't be reused here. + return super.getExamples().filter(example -> !example.getPlainExampleFile().equals("group-members.json")); + } } \ No newline at end of file diff --git a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Mail_NoAppIds_Tests.java b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Mail_NoAppIds_Tests.java index c76cf98744..f5de209030 100644 --- a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Mail_NoAppIds_Tests.java +++ b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Mail_NoAppIds_Tests.java @@ -24,6 +24,7 @@ public class Mail_NoAppIds_Tests extends EntraIDTests { .sourceKind("outlook-mail") .rulesFile("outlook-mail_no-app-ids") .exampleSanitizedApiResponsesPath("example-api-responses/sanitized_no-app-ids/") + .checkUncompressedSSMLength(false) .build(); @ParameterizedTest @@ -107,7 +108,7 @@ public void mailboxSettings(String apiVersion) { ); assertUrlAllowed(endpoint); - assertUrlWithQueryParamsBlocked(endpoint); + assertUrlWithQueryParamsAllowed(endpoint); } @ParameterizedTest @@ -134,8 +135,20 @@ public void inboxBlocked(String apiVersion) { public Stream getExamples() { return Stream.of( InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/mailboxSettings", "MailboxSettings_v1.0.json"), + // mailboxSettings - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/mailboxSettings?arbitraryTestParam=shouldBeAllowed", "MailboxSettings_v1.0.json"), InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/messages/AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e-T7KzowPTAAAAAAEJAAAiIsqMbYjsT5e-T7KzowPTAAQSfAIWAAA=", "Message_v1.0.json"), - InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/mailFolders('SentItems')/messages?$filter=SentDateTime+gt+2019-12-30T00%3a00%3a00Z+and+SentDateTime+lt+2022-05-16T00%3a00%3a00Z&%24top=10&$skip=10", "Messages_SentItems_v1.0.json") + // messages/{id} - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/messages/AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e-T7KzowPTAAAAAAEJAAAiIsqMbYjsT5e-T7KzowPTAAQSfAIWAAA=?arbitraryTestParam=shouldBeAllowed", "Message_v1.0.json"), + InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/mailFolders('SentItems')/messages?$filter=SentDateTime+gt+2019-12-30T00%3a00%3a00Z+and+SentDateTime+lt+2022-05-16T00%3a00%3a00Z&%24top=10&$skip=10", "Messages_SentItems_v1.0.json"), + // mailFolders/SentItems/messages - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/mailFolders('SentItems')/messages?arbitraryTestParam=shouldBeAllowed", "Messages_SentItems_v1.0.json"), + // users/{id} - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug?$select=id,mail", "user.json"), + // groups/{id}/members - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315/members?$top=50&$select=id&$skiptoken=abcXYZ123&$orderBy=id&$count=true", "group-members.json"), + // users (collection) - with all allowed query params + InvocationExample.of("https://graph.microsoft.com/v1.0/users?$top=50&$select=id,mail&$skiptoken=abcXYZ123&$orderBy=id&$count=true&$filter=startswith(userPrincipalName,'a')", "users.json") ); } } \ No newline at end of file diff --git a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/OneDriveTests.java b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/OneDriveTests.java index 130bc550b1..14c7a800b6 100644 --- a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/OneDriveTests.java +++ b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/OneDriveTests.java @@ -39,15 +39,24 @@ public Stream getExamples() { InvocationExample.of(baseEndpoint + "/groups", "groups.json"), InvocationExample.of(baseEndpoint + "/groups?$top=999&$select=id,mail&$skiptoken=abcXYZ123&$orderby=id&$count=true", "groups.json"), // /v1.0/users/{userId}/drives - no query params, and with all allowed query params - InvocationExample.of(baseEndpoint + "/users/" + userId + "/drives", "list_drives.json"), - InvocationExample.of(baseEndpoint + "/users/" + userId + "/drives?$select=id,driveType,system&$skiptoken=abcXYZ123&$top=999&$orderby=id&$expand=root", "list_drives.json"), + InvocationExample.of(baseEndpoint + "/users/" + userId + "/drives", "list_user_drives.json"), + InvocationExample.of(baseEndpoint + "/users/" + userId + "/drives?$select=id,driveType,system&$skiptoken=abcXYZ123&$top=999&$orderby=id&$expand=root", "list_user_drives.json"), + // (with app ids visible, fixture's @odata.nextLink is passed through unmodified -- no + // pathParameterSchemas constraint on userId in this rule variant) + InvocationExample.of(baseEndpoint + "/users/" + userId + "/drives", "list_user_drives.json"), + InvocationExample.of(baseEndpoint + "/users/" + userId + "/drives?$select=id,driveType,system&$skiptoken=abcXYZ123&$top=999&$orderby=id&$expand=root", "list_user_drives.json"), // /v1.0/groups/{groupId}/drives - no query params, and with all allowed query params - InvocationExample.of(baseEndpoint + "/groups/" + groupId + "/drives", "list_drives.json"), - InvocationExample.of(baseEndpoint + "/groups/" + groupId + "/drives?$select=id,driveType,system&$skiptoken=abcXYZ123&$top=999&$orderby=id&$expand=root", "list_drives.json"), + InvocationExample.of(baseEndpoint + "/groups/" + groupId + "/drives", "list_groups_drives.json"), + InvocationExample.of(baseEndpoint + "/groups/" + groupId + "/drives?$select=id,driveType,system&$skiptoken=abcXYZ123&$top=999&$orderby=id&$expand=root", "list_groups_drives.json"), // /v1.0/drives/{driveId}/root/delta - no query params, and with all allowed query params InvocationExample.of(baseEndpoint + "/drives/" + driveId + "/root/delta", "get_drive_delta.json"), + // real pagination continuation shape confirmed via live testing against the Graph API + // (a "?token=..." query param, matching MSFT's own docs example) InvocationExample.of(baseEndpoint + "/drives/" + driveId + "/root/delta?token=abcXYZ123&", "get_drive_delta.json"), - // /v1.0/drives/{driveId}/items/{itemId}/activities - no query params allowed by rules + // the OTHER real continuation shape, from this fixture's own captured @odata.nextLink + // (an OData function-call path segment -- rules must accept both) + InvocationExample.of(baseEndpoint + "/drives/" + driveId + "/root/delta(token=1230919asd190410jlka)", "get_drive_delta.json"), + InvocationExample.of(baseEndpoint + "/drives/" + driveId + "/items/" + itemId + "/activities", "list_itemActivity.json"), InvocationExample.of(baseEndpoint + "/drives/" + driveId + "/items/" + itemId + "/activities?$expand=driveItem", "list_itemActivity.json"), InvocationExample.of(baseEndpoint + "/drives/" + driveId + "/items/" + itemId + "/activities?$skiptoken=some_token", "list_itemActivity.json"), diff --git a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/OneDrive_NoAppIds_Tests.java b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/OneDrive_NoAppIds_Tests.java index 2f40c9f4d5..91f3487622 100644 --- a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/OneDrive_NoAppIds_Tests.java +++ b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/OneDrive_NoAppIds_Tests.java @@ -41,15 +41,23 @@ public Stream getExamples() { InvocationExample.of(baseEndpoint + "/groups", "groups.json"), InvocationExample.of(baseEndpoint + "/groups?$top=999&$select=id,mail&$skiptoken=abcXYZ123&$orderby=id&$count=true", "groups.json"), // /v1.0/users/{userId}/drives - no query params, and with all allowed query params - InvocationExample.of(baseEndpoint + "/users/" + userId + "/drives", "list_drives.json"), - InvocationExample.of(baseEndpoint + "/users/" + userId + "/drives?$select=id,driveType,system&$skiptoken=abcXYZ123&$top=999&$orderby=id&$expand=root", "list_drives.json"), + // (fixture's @odata.nextLink embeds the raw, un-pseudonymized AAD user id that Graph + // resolves the path to; it must be re-tokenized so a client following the link isn't + // blocked by pathParameterSchemas requiring a reversible-pseudonym userId) + InvocationExample.of(baseEndpoint + "/users/" + userId + "/drives", "list_user_drives.json"), + InvocationExample.of(baseEndpoint + "/users/" + userId + "/drives?$select=id,driveType,system&$skiptoken=abcXYZ123&$top=999&$orderby=id&$expand=root", "list_user_drives.json"), // /v1.0/groups/{groupId}/drives - no query params, and with all allowed query params - InvocationExample.of(baseEndpoint + "/groups/" + groupId + "/drives", "list_drives.json"), - InvocationExample.of(baseEndpoint + "/groups/" + groupId + "/drives?$select=id,driveType,system&$skiptoken=abcXYZ123&$top=999&$orderby=id&$expand=root", "list_drives.json"), + InvocationExample.of(baseEndpoint + "/groups/" + groupId + "/drives", "list_groups_drives.json"), + InvocationExample.of(baseEndpoint + "/groups/" + groupId + "/drives?$select=id,driveType,system&$skiptoken=abcXYZ123&$top=999&$orderby=id&$expand=root", "list_groups_drives.json"), // /v1.0/drives/{driveId}/root/delta - no query params, and with all allowed query params InvocationExample.of(baseEndpoint + "/drives/" + driveId + "/root/delta", "get_drive_delta.json"), + // real pagination continuation shape confirmed via live testing against the Graph API + // (a "?token=..." query param, matching MSFT's own docs example) InvocationExample.of(baseEndpoint + "/drives/" + driveId + "/root/delta?token=abcXYZ123&", "get_drive_delta.json"), - // /v1.0/drives/{driveId}/items/{itemId}/activities - no query params allowed by rules + // the OTHER real continuation shape, from this fixture's own captured @odata.nextLink + // (an OData function-call path segment -- rules must accept both) + InvocationExample.of(baseEndpoint + "/drives/" + driveId + "/root/delta(token=1230919asd190410jlka)", "get_drive_delta.json"), + InvocationExample.of(baseEndpoint + "/drives/" + driveId + "/items/" + itemId + "/activities", "list_itemActivity.json"), InvocationExample.of(baseEndpoint + "/drives/" + driveId + "/items/" + itemId + "/activities?$expand=driveItem", "list_itemActivity.json"), InvocationExample.of(baseEndpoint + "/drives/" + driveId + "/items/" + itemId + "/activities?$skiptoken=some_token", "list_itemActivity.json"), diff --git a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/TeamsTests.java b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/TeamsTests.java index 3544cde79d..d705a7a5fe 100644 --- a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/TeamsTests.java +++ b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/TeamsTests.java @@ -20,6 +20,7 @@ public RulesTestSpec getRulesTestSpec() { return RulesTestSpec.builder() .sourceFamily("microsoft-365") .sourceKind("msft-teams") + .checkUncompressedSSMLength(false) .build(); } @@ -107,11 +108,13 @@ public void users_chats(String apiVersion) { ); String sanitized = sanitize(endpoint, jsonResponse); + // "topic" key itself is now retained (RedactExceptPhrases on Chat.topic, added later this + // session to support topic-based digests); its value is still redacted unless it matches + // an allowed phrase, so we assert on the values rather than key absence. assertRedacted(sanitized, "lastMessagePreview@odata.context", "Meeting chat sample", - "Group chat sample", - "topic" + "Group chat sample" ); assertUrlWithSubResourcesBlocked(endpoint); } @@ -283,7 +286,7 @@ public void communications_calls(String apiVersion) { } @Test - @Description("Test endpoint: " + PrebuiltSanitizerRules.MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALL_RECORDS_REGEX) + @Description("Test endpoint: " + PrebuiltSanitizerRules.MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALL_RECORDS_LIST_REGEX) public void communications_callRecords() { String apiVersion = "v1.0"; String endpoint = "https://graph.microsoft.com/" + apiVersion + "/communications/callRecords"; @@ -297,10 +300,12 @@ public void communications_callRecords() { ); String sanitized = sanitize(endpoint, jsonResponse); + // base variant does not pseudonymize ids (same convention as user.id elsewhere on this + // endpoint); "+5564981205182" is a phone-identity's id (organizer_v2.identity.phone.id), + // consistent with that convention once organizer_v2 is modeled. assertRedacted(sanitized, "Abbie Wilkins", "Owen Franklin", - "+5564981205182", "machineName_", "Default input device", "Microphone (Microsoft Virtual Audio Device (Simple) (WDM))" @@ -473,7 +478,12 @@ public void users_onlineMeetings_attendanceReports() { @Test public void users_onlineMeetings_attendanceReport() { String userId = "dc17674c-81d9-4adb-bfb2-8f6a442e4622"; - String endpoint = "https://graph.microsoft.com/v1.0" + "/users/" + userId + "/onlineMeetings"; + // fixture is a single attendanceReport object (attendanceRecords[]/id/meetingStartDateTime + // at top level, not `value[]`-wrapped), matching the dedicated + // .../onlineMeetings/{meetingId}/attendanceReports/{reportId} endpoint, not the + // onlineMeetings collection endpoint. + String endpoint = "https://graph.microsoft.com/v1.0" + "/users/" + userId + + "/onlineMeetings/MSpkYzE3Njc0Yy04MWQ5LTRhZGItYmZ/attendanceReports/c9b6db1c-d5eb-427d-a5c0-20088d9b22d7"; String jsonResponse = asJson("Users_onlineMeetings_attendanceReport_v1.0.json"); assertNotSanitized(jsonResponse, "dc17674c-81d9-4adb-bfb2-8f6a442e4623" @@ -496,24 +506,60 @@ public Stream getExamples() { return Stream.of( InvocationExample.of(baseEndpoint + "/teams", "Teams_" + apiVersion + ".json"), + // /teams - with all allowed query params + InvocationExample.of(baseEndpoint + "/teams?$select=id,displayName&$top=50&$skiptoken=abcXYZ123&$filter=startswith(displayName,'C')&$count=true", "Teams_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/teams/893075dd-2487-4122-925f-022c42e20265/allChannels", "Teams_allChannels_" + apiVersion + ".json"), + // /teams/{id}/allChannels - with all allowed query params + InvocationExample.of(baseEndpoint + "/teams/893075dd-2487-4122-925f-022c42e20265/allChannels?$select=id,displayName&$filter=membershipType%20eq%20'standard'", "Teams_allChannels_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/users/8b081ef6-4792-4def-b2c9-c363a1bf41d5/chats", "Users_chats_" + apiVersion + ".json"), + // /users/{id}/chats - with all allowed query params + InvocationExample.of(baseEndpoint + "/users/8b081ef6-4792-4def-b2c9-c363a1bf41d5/chats?$select=id,topic&$top=50&$skiptoken=abcXYZ123&$filter=chatType%20eq%20'group'&$orderby=lastUpdatedDateTime&$expand=members", "Users_chats_" + apiVersion + ".json"), + // /users/{id}/chats - real shape sent by FetchTeamsItemsJob ($top=50, $expand=lastMessagePreview, nested-paren $filter with property-path segments) + InvocationExample.of(baseEndpoint + "/users/8b081ef6-4792-4def-b2c9-c363a1bf41d5/chats?$top=50&$expand=lastMessagePreview&$filter=tenantId%20ne%20null%20and%20(onlineMeetingInfo/joinWebUrl%20ne%20null%20or%20(lastMessagePreview/createdDateTime%20gt%202020-01-01T00:00:00Z))", "Users_chats_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages", "Teams_channels_messages_" + apiVersion + ".json"), + // /teams/{id}/channels/{id}/messages - with all allowed query params + InvocationExample.of(baseEndpoint + "/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages?$select=id,body&$top=50&$skiptoken=abcXYZ123&$expand=replies", "Teams_channels_messages_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages/delta", "Teams_channels_messages_delta_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages/delta?$deltatoken=someToken", "Teams_channels_messages_delta_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages/delta?$skiptoken=someToken", "Teams_channels_messages_delta_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:3f545ef23b56445ea4ce75d4bae8a5e0@thread.tacv2/messages/delta?$filter=lastModifiedDateTime%20gt%202015-01-01T00:00:00Z&$expand=replies", "Teams_channels_messages_delta_" + apiVersion + ".json"), + // /teams/{id}/channels/{id}/messages/delta - with all allowed query params + InvocationExample.of(baseEndpoint + "/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages/delta?$select=id,body&$top=50&$skiptoken=abcXYZ123&$expand=replies&$deltatoken=someToken&$filter=lastModifiedDateTime%20gt%202015-01-01T00:00:00Z", "Teams_channels_messages_delta_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/chats/19:2da4c29f6d7041eca70b638b43d45437@thread.v2/messages", "Chats_messages_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/chats/19:2da4c29f6d7041eca70b638b43d45437@thread.v2/messages", "Chats_messages_" + apiVersion + ".json"), + // /chats/{id}/messages - with all allowed query params + InvocationExample.of(baseEndpoint + "/chats/19:2da4c29f6d7041eca70b638b43d45437@thread.v2/messages?$select=id,body&$top=50&$skiptoken=abcXYZ123&$filter=lastModifiedDateTime%20gt%202015-01-01T00:00:00Z&$orderby=lastModifiedDateTime&$count=true&$expand=replies&$format=json&$search=test&$skip=10", "Chats_messages_" + apiVersion + ".json"), + // /chats/{id}/messages - real shape sent by MessageFetchStrategy (compound gt-and-lt date-range $filter, no other params) + InvocationExample.of(baseEndpoint + "/chats/19:2da4c29f6d7041eca70b638b43d45437@thread.v2/messages?$filter=lastModifiedDateTime%20gt%202015-01-01T00:00:00Z%20and%20lastModifiedDateTime%20lt%202015-06-01T00:00:00Z", "Chats_messages_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/communications/calls/2f1a1100-b174-40a0-aba7-0b405e01ed92", "Communications_calls_" + apiVersion + ".json"), + // /communications/calls/{id} - with all allowed query params + InvocationExample.of(baseEndpoint + "/communications/calls/2f1a1100-b174-40a0-aba7-0b405e01ed92?$select=id,state&$top=1&$expand=participants", "Communications_calls_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/communications/callRecords?$expand=sessions($expand=segments)", "Communications_callRecords_" + apiVersion + ".json"), + // /communications/callRecords - with all allowed query params + InvocationExample.of(baseEndpoint + "/communications/callRecords?$select=id&$expand=sessions($expand=segments)&$filter=startDateTime%20ge%202020-01-01", "Communications_callRecords_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/communications/callRecords/2f1a1100-b174-40a0-aba7-0b405e01ed92?$expand=sessions($expand=segments)", "Communications_callRecord_" + apiVersion + ".json"), + // /communications/callRecords/{id} - with all allowed query params + InvocationExample.of(baseEndpoint + "/communications/callRecords/2f1a1100-b174-40a0-aba7-0b405e01ed92?$select=id&$expand=sessions($expand=segments)&$filter=startDateTime%20ge%202020-01-01", "Communications_callRecord_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/communications/callRecords/getDirectRoutingCalls(fromDateTime=2019-11-01,toDateTime=2019-12-01)", "Communications_callRecords_getDirectRoutingCalls_" + apiVersion + ".json"), + // getDirectRoutingCalls - with all allowed query params + InvocationExample.of(baseEndpoint + "/communications/callRecords/getDirectRoutingCalls(fromDateTime=2019-11-01,toDateTime=2019-12-01)?$skip=10", "Communications_callRecords_getDirectRoutingCalls_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/communications/callRecords/getPstnCalls(fromDateTime=2019-11-01,toDateTime=2019-12-01)", "Communications_callRecords_getPstnCalls_" + apiVersion + ".json"), + // getPstnCalls - with all allowed query params + InvocationExample.of(baseEndpoint + "/communications/callRecords/getPstnCalls(fromDateTime=2019-11-01,toDateTime=2019-12-01)?$skip=10", "Communications_callRecords_getPstnCalls_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/users", "Users_" + apiVersion + ".json"), + // /users - with all allowed query params + InvocationExample.of(baseEndpoint + "/users?$top=50&$select=id,mail&$skiptoken=abcXYZ123&$orderBy=id&$count=true&$filter=startswith(userPrincipalName,'a')", "Users_" + apiVersion + ".json"), + // /users/{id} - with all allowed query params + InvocationExample.of(baseEndpoint + "/users/dc17674c-81d9-4adb-bfb2-8f6a442e4622?$select=id,mail", "user.json"), InvocationExample.of(baseEndpoint + "/users/dc17674c-81d9-4adb-bfb2-8f6a442e4622/onlineMeetings", "Users_onlineMeetings_" + apiVersion + ".json"), + // /users/{id}/onlineMeetings - with all allowed query params + InvocationExample.of(baseEndpoint + "/users/dc17674c-81d9-4adb-bfb2-8f6a442e4622/onlineMeetings?$select=id,subject&$top=50&$skiptoken=abcXYZ123&$filter=startDateTime%20ge%202020-01-01T00:00:00Z&$orderby=startDateTime&$count=true&$expand=attendanceReports&$format=json&$search=test&$skip=10", "Users_onlineMeetings_" + apiVersion + ".json"), InvocationExample.of(baseEndpoint + "/users/dc17674c-81d9-4adb-bfb2-8f6a442e4622/onlineMeetings/MSpkYzE3Njc0Yy04MWQ5LTRhZGItYmZ/attendanceReports", "Users_onlineMeetings_attendanceReports_" + apiVersion + ".json"), - InvocationExample.of(baseEndpoint + "/users/dc17674c-81d9-4adb-bfb2-8f6a442e4622/onlineMeetings/MSpkYzE3Njc0Yy04MWQ5LTRhZGItYmZ/attendanceReports/c9b6db1c-d5eb-427d-a5c0-20088d9b22d7?$expand=attendanceRecords", "Users_onlineMeetings_attendanceReport_" + apiVersion + ".json") + // .../onlineMeetings/{id}/attendanceReports - with all allowed query params + InvocationExample.of(baseEndpoint + "/users/dc17674c-81d9-4adb-bfb2-8f6a442e4622/onlineMeetings/MSpkYzE3Njc0Yy04MWQ5LTRhZGItYmZ/attendanceReports?$select=id&$top=50&$skiptoken=abcXYZ123&$filter=totalParticipantCount%20gt%200&$orderby=id&$count=true&$expand=attendanceRecords&$format=json&$search=test&$skip=10", "Users_onlineMeetings_attendanceReports_" + apiVersion + ".json"), + InvocationExample.of(baseEndpoint + "/users/dc17674c-81d9-4adb-bfb2-8f6a442e4622/onlineMeetings/MSpkYzE3Njc0Yy04MWQ5LTRhZGItYmZ/attendanceReports/c9b6db1c-d5eb-427d-a5c0-20088d9b22d7?$expand=attendanceRecords", "Users_onlineMeetings_attendanceReport_" + apiVersion + ".json"), + // .../attendanceReports/{id} - with all allowed query params + InvocationExample.of(baseEndpoint + "/users/dc17674c-81d9-4adb-bfb2-8f6a442e4622/onlineMeetings/MSpkYzE3Njc0Yy04MWQ5LTRhZGItYmZ/attendanceReports/c9b6db1c-d5eb-427d-a5c0-20088d9b22d7?$select=id&$top=50&$skiptoken=abcXYZ123&$filter=totalParticipantCount%20gt%200&$orderby=id&$count=true&$expand=attendanceRecords&$format=json&$search=test&$skip=10", "Users_onlineMeetings_attendanceReport_" + apiVersion + ".json") ); } } diff --git a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Teams_NoUserIds_Tests.java b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Teams_NoAppIds_Tests.java similarity index 77% rename from java/core/src/test/java/co/worklytics/psoxy/rules/msft/Teams_NoUserIds_Tests.java rename to java/core/src/test/java/co/worklytics/psoxy/rules/msft/Teams_NoAppIds_Tests.java index 63187f5e9d..ab8c244795 100644 --- a/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Teams_NoUserIds_Tests.java +++ b/java/core/src/test/java/co/worklytics/psoxy/rules/msft/Teams_NoAppIds_Tests.java @@ -15,10 +15,10 @@ import java.util.Collections; import java.util.stream.Stream; -public class Teams_NoUserIds_Tests extends JavaRulesTestBaseCase { +public class Teams_NoAppIds_Tests extends JavaRulesTestBaseCase { @Getter - final Rules2 rulesUnderTest = PrebuiltSanitizerRules.MS_TEAMS_NO_USER_ID; + final Rules2 rulesUnderTest = PrebuiltSanitizerRules.MS_TEAMS_NO_APP_IDS; @Override @@ -26,8 +26,9 @@ public RulesTestSpec getRulesTestSpec() { return RulesTestSpec.builder() .sourceFamily("microsoft-365") .sourceKind("msft-teams") - .rulesFile("msft-teams_no-userIds") - .exampleSanitizedApiResponsesPath("example-api-responses/sanitized_no-userIds/") + .rulesFile("msft-teams_no-app-ids") + .exampleSanitizedApiResponsesPath("example-api-responses/sanitized_no-app-ids/") + .checkUncompressedSSMLength(false) .build(); } @@ -173,14 +174,18 @@ public void communications_calls() { } @Test - @Description("Test endpoint: " + PrebuiltSanitizerRules.MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALL_RECORDS_REGEX) + @Description("Test endpoint: " + PrebuiltSanitizerRules.MS_TEAMS_PATH_TEMPLATES_COMMUNICATIONS_CALL_RECORDS_LIST_REGEX) public void communications_callRecords() { String endpoint = "https://graph.microsoft.com/" + "v1.0" + "/communications/callRecords"; String jsonResponse = asJson("Communications_callRecords_" + "v1.0" + ".json"); String sanitized = sanitize(endpoint, jsonResponse); - assertPseudonymized(sanitized, "821809f5-0000-0000-0000-3b5136c0e777"); + // this fixture is the `value[]`-wrapped "List callRecords" shape, handled by + // GetCallRecordsResponse.java; organizer/organizer_v2 (user- and phone-identity variants) + // are pseudonymized, not merely dropped. + assertPseudonymized(sanitized, "821809f5-0000-0000-0000-3b5136c0e777", "+5564981205182"); assertRedacted(sanitized, + "821809f5-0000-0000-0000-3b5136c0e777", "@odata.context", "https://graph.microsoft.com/v1.0/$metadata#communications/callRecords(sessions(segments()))/$entity", "@odata.type", "#microsoft.graph.callRecords.participantEndpoint", "#microsoft.graph.callRecords.clientUserAgent", @@ -327,21 +332,51 @@ public Stream getExamples() { return Stream.of( InvocationExample.of(baseEndpoint + "/teams", "Teams_" + "v1.0" + ".json"), + // /teams - with all allowed query params + InvocationExample.of(baseEndpoint + "/teams?$select=id,displayName&$top=50&$skiptoken=abcXYZ123&$filter=startswith(displayName,'C')&$count=true", "Teams_" + "v1.0" + ".json"), InvocationExample.of(baseEndpoint + "/teams/893075dd-2487-4122-925f-022c42e20265/allChannels", "Teams_allChannels_" + "v1.0" + ".json"), + // /teams/{id}/allChannels - with all allowed query params + InvocationExample.of(baseEndpoint + "/teams/893075dd-2487-4122-925f-022c42e20265/allChannels?$select=id,displayName&$filter=membershipType%20eq%20'standard'", "Teams_allChannels_" + "v1.0" + ".json"), InvocationExample.of(baseEndpoint + "/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/chats", "Users_chats_" + "v1.0" + ".json"), InvocationExample.of(baseEndpoint + "/users/p~SIoJOpeSgYF7YUPQ28IWZexVuHyN9A80SJXrbfawKpDRcddGnKI4QDKyjQI9KtjJZDb8FZ27UE_toS68FyWz7Y22fnQYLP91SHJGVwQiN3E/chats?$expand=lastMessagePreview&$skiptoken=1.kscDYs0BDcYAAAEP8D2BqlByb3BlcnRpZXOCqVN5bmNTdGF0ZdnkZXlKa1pXeHBkbVZ5WldSVFpXZHRaVzUwY3lJNlczc2ljM1JoY25RaU9pSXlNREkwTFRBBADwrnhWREV3T2pBNE9qQTNMamsxTVNzd01Eb3dNQ0lzSW1WdVpDSTZJakl3TWpRdE1EZ3RNRFZVTURJNk1UVTZNVGd1TVRFck1EQTZNREFpZlYwc0lucGxjbTlNVFZOVVJHVnNhWFpsY21Wa1UyVm5iV1Z1ZEhNaU9sdGRMQ0p6YjNKMFQzSmtaWElpT2pBc0ltbHVZMngxWkdWYVpYSnZURTFUVkNJNlptRnNjMlY5rExhc3RQYWdlU2l6ZaIyMA%3d%3d", "Users_chats_" + "v1.0" + ".json"), + // /users/{id}/chats - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of(baseEndpoint + "/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/chats?arbitraryTestParam=shouldBeAllowed", "Users_chats_" + "v1.0" + ".json"), InvocationExample.of(baseEndpoint + "/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages", "Teams_channels_messages_" + "v1.0" + ".json"), + // /teams/{id}/channels/{id}/messages - with all allowed query params + InvocationExample.of(baseEndpoint + "/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages?$select=id,body&$top=50&$skiptoken=abcXYZ123&$expand=replies", "Teams_channels_messages_" + "v1.0" + ".json"), InvocationExample.of(baseEndpoint + "/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages/delta", "Teams_channels_messages_delta_" + "v1.0" + ".json"), + // /teams/{id}/channels/{id}/messages/delta - with all allowed query params + InvocationExample.of(baseEndpoint + "/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages/delta?$select=id,body&$top=50&$skiptoken=abcXYZ123&$expand=replies&$deltatoken=someToken&$filter=lastModifiedDateTime%20gt%202015-01-01T00:00:00Z", "Teams_channels_messages_delta_" + "v1.0" + ".json"), InvocationExample.of(baseEndpoint + "/chats/p~bWr_bA0wnI4CDi2z8MuXG2vEmijbgJ9-MX1hsrnF20ik1FwGIGIQ_uMj2B_4LQV7U7F8XPs4Nx_URHgdx-pukZu2Hb6QzmB24IBvBInSdwA/messages", "Chats_messages_" + "v1.0" + ".json"), + // /chats/{id}/messages - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of(baseEndpoint + "/chats/p~bWr_bA0wnI4CDi2z8MuXG2vEmijbgJ9-MX1hsrnF20ik1FwGIGIQ_uMj2B_4LQV7U7F8XPs4Nx_URHgdx-pukZu2Hb6QzmB24IBvBInSdwA/messages?arbitraryTestParam=shouldBeAllowed", "Chats_messages_" + "v1.0" + ".json"), InvocationExample.of(baseEndpoint + "/communications/calls/2f1a1100-b174-40a0-aba7-0b405e01ed92", "Communications_calls_" + "v1.0" + ".json"), + // /communications/calls/{id} - with all allowed query params + InvocationExample.of(baseEndpoint + "/communications/calls/2f1a1100-b174-40a0-aba7-0b405e01ed92?$select=id,state&$top=1&$expand=participants", "Communications_calls_" + "v1.0" + ".json"), InvocationExample.of(baseEndpoint + "/communications/callRecords?$expand=sessions($expand=segments)", "Communications_callRecords_" + "v1.0" + ".json"), + // /communications/callRecords - with all allowed query params + InvocationExample.of(baseEndpoint + "/communications/callRecords?$select=id&$expand=sessions($expand=segments)&$filter=startDateTime%20ge%202020-01-01", "Communications_callRecords_" + "v1.0" + ".json"), InvocationExample.of(baseEndpoint + "/communications/callRecords/2f1a1100-b174-40a0-aba7-0b405e01ed92?$expand=sessions($expand=segments)", "Communications_callRecord_" + "v1.0" + ".json"), + // /communications/callRecords/{id} - with all allowed query params + InvocationExample.of(baseEndpoint + "/communications/callRecords/2f1a1100-b174-40a0-aba7-0b405e01ed92?$select=id&$expand=sessions($expand=segments)&$filter=startDateTime%20ge%202020-01-01", "Communications_callRecord_" + "v1.0" + ".json"), InvocationExample.of(baseEndpoint + "/communications/callRecords/getDirectRoutingCalls(fromDateTime=2019-11-01,toDateTime=2019-12-01)", "Communications_callRecords_getDirectRoutingCalls_" + "v1.0" + ".json"), + // getDirectRoutingCalls - with all allowed query params + InvocationExample.of(baseEndpoint + "/communications/callRecords/getDirectRoutingCalls(fromDateTime=2019-11-01,toDateTime=2019-12-01)?$skip=10", "Communications_callRecords_getDirectRoutingCalls_" + "v1.0" + ".json"), InvocationExample.of(baseEndpoint + "/communications/callRecords/getPstnCalls(fromDateTime=2019-11-01,toDateTime=2019-12-01)", "Communications_callRecords_getPstnCalls_" + "v1.0" + ".json"), + // getPstnCalls - with all allowed query params + InvocationExample.of(baseEndpoint + "/communications/callRecords/getPstnCalls(fromDateTime=2019-11-01,toDateTime=2019-12-01)?$skip=10", "Communications_callRecords_getPstnCalls_" + "v1.0" + ".json"), + // /users/{id} - with all allowed query params + InvocationExample.of(baseEndpoint + "/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug?$select=id,mail", "user.json"), InvocationExample.of(baseEndpoint + "/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/onlineMeetings", "Users_onlineMeetings_" + "v1.0" + ".json"), InvocationExample.of(baseEndpoint + "/users/p~ZVGC5_Azw1yfpYdTixK-261KMPVFYf9JsRSHT5xviNNc9FGanxcMYemlX4cX4uIcrYVRk1e3QgKwLiukP5AzPH7EMRKicFHLercCDEMycrs/onlineMeetings?$filter=JoinWebUrl eq 'https://teams.microsoft.com/l/meetup-join/19%3ameeting_NDJiMWI0ZTUtNDI2ZC00MjRiLWI0NDEtMjVhZTU5ZDlkZGMz%40thread.v2/0?context=%7b%22Tid%22%3a%226e4c8e9f-76cf-41d1-806e-61838b880b87%22%2c%22Oid%22%3a%226257b47d-9e87-418b-9ac2-031f09397de7%22%7d'", "Users_onlineMeetings_" + "v1.0" + ".json"), + // /users/{id}/onlineMeetings - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of(baseEndpoint + "/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/onlineMeetings?arbitraryTestParam=shouldBeAllowed", "Users_onlineMeetings_" + "v1.0" + ".json"), InvocationExample.of(baseEndpoint + "/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/onlineMeetings/MSpkYzE3Njc0Yy04MWQ5LTRhZGItYmZ/attendanceReports", "Users_onlineMeetings_attendanceReports_" + "v1.0" + ".json"), - InvocationExample.of(baseEndpoint + "/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/onlineMeetings/MSpkYzE3Njc0Yy04MWQ5LTRhZGItYmZ/attendanceReports/c9b6db1c-d5eb-427d-a5c0-20088d9b22d7?$expand=attendanceRecords", "Users_onlineMeetings_attendanceReport_" + "v1.0" + ".json") + // /onlineMeetings/{id}/attendanceReports - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of(baseEndpoint + "/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/onlineMeetings/MSpkYzE3Njc0Yy04MWQ5LTRhZGItYmZ/attendanceReports?arbitraryTestParam=shouldBeAllowed", "Users_onlineMeetings_attendanceReports_" + "v1.0" + ".json"), + InvocationExample.of(baseEndpoint + "/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/onlineMeetings/MSpkYzE3Njc0Yy04MWQ5LTRhZGItYmZ/attendanceReports/c9b6db1c-d5eb-427d-a5c0-20088d9b22d7?$expand=attendanceRecords", "Users_onlineMeetings_attendanceReport_" + "v1.0" + ".json"), + // /onlineMeetings/{id}/attendanceReports/{id} - allowedQueryParams is "*" (unrestricted); proves an arbitrary/unlisted param is still allowed + InvocationExample.of(baseEndpoint + "/users/p~JuB1uFI_rtVS0Ygtc3m4uxhEiLI-6vn5ySKma20etlGvAJvlFOlnYuRejZSdIm5tmHzio-TdKzazWRwL50vNeFravJETR0l1WAvE219Jwug/onlineMeetings/MSpkYzE3Njc0Yy04MWQ5LTRhZGItYmZ/attendanceReports/c9b6db1c-d5eb-427d-a5c0-20088d9b22d7?arbitraryTestParam=shouldBeAllowed", "Users_onlineMeetings_attendanceReport_" + "v1.0" + ".json") ); } } diff --git a/tools/psoxy-test/cli-call.js b/tools/psoxy-test/cli-call.js index 214352efa4..631665e3a3 100644 --- a/tools/psoxy-test/cli-call.js +++ b/tools/psoxy-test/cli-call.js @@ -48,11 +48,13 @@ const AWS_ACCESS_DENIED_EXCEPTION_REGEXP = new RegExp(/(?arn:aws:iam::\d+:\ .option('--verify-collection ', 'Verify that the posted data appears in the specified bucket (GCS/S3)') .option('--scheduler-job ', 'GCP: Cloud Scheduler job name to trigger batch processing') .option('--concurrency ', 'Fire N concurrent copies of the request (max 5) to test instance concurrency', parseInt) + .option('--paginate', 'With -d: enable pagination for endpoints that support it (adds $top and follows Graph API @odata.nextLink); off by default', false) + .option('--page-size ', 'With -d --paginate: page size ($top) requested per call', parseInt, 1) + .option('--max-pages ', 'With -d --paginate: max pages to follow per endpoint', parseInt, 3) .addOption(new Option('-d, --data-source ', 'Data source to test all available endpoints').choices([ //TODO: pull this list from terraform console or something?? 'asana', - 'azure-ad', 'dropbox-business', 'gcal', 'gdrive', @@ -61,6 +63,8 @@ const AWS_ACCESS_DENIED_EXCEPTION_REGEXP = new RegExp(/(?arn:aws:iam::\d+:\ 'google-chat', 'google-meet', 'msft-copilot', + 'msft-entra-id', + 'msft-onedrive', 'msft-teams', 'slack-discovery-api', 'outlook-cal', diff --git a/tools/psoxy-test/data-sources/runner.js b/tools/psoxy-test/data-sources/runner.js index 5e209ab7a7..7fd7791cdf 100644 --- a/tools/psoxy-test/data-sources/runner.js +++ b/tools/psoxy-test/data-sources/runner.js @@ -1,46 +1,125 @@ import psoxyTestCall from '../psoxy-test-call.js'; import chalk from 'chalk'; +import _ from 'lodash'; import spec from './spec.js'; import { transformSpecWithResponse } from '../lib/utils.js'; import getLogger from '../lib/logger.js'; +const DEFAULT_MAX_PAGES = 3; +const DEFAULT_PAGE_SIZE = 1; + +/** + * A `@odata.nextLink` is an *absolute* graph.microsoft.com URL. To keep + * following pagination through the Psoxy proxy (rather than calling Graph + * directly), swap its host for the proxy's base URL and keep its path/query. + * + * @param {string} nextLink + * @param {string} baseUrl - Psoxy deploy base URL (no API path) + * @returns {string} + */ +function nextLinkToProxyUrl(nextLink, baseUrl) { + const { pathname, search } = new URL(nextLink); + return `${baseUrl.replace(/\/$/, '')}${pathname}${search}`; +} + +/** + * Merge the `value` arrays of every fetched page into a single object, so an + * accessor like `value[0].id` still resolves even when an early page comes + * back with an empty `value` but a valid `@odata.nextLink` (a known OData + * paging quirk) - otherwise refs chaining would only ever look at page 1. + * + * @param {Object[]} pages - results from psoxyTestCall, one per page + * @returns {Object} + */ +function mergePagesForRefs(pages) { + if (pages.length <= 1) { + return pages[0]?.data; + } + return pages.reduce((merged, page) => { + const value = page?.data?.value; + if (Array.isArray(value)) { + merged.value = (merged.value || []).concat(value); + } + return merged; + }, { ...pages[0]?.data }); +} + /** * Run multiple psoxy test calls depending on options.dataSource spec * * @param {Object} options - see `../psoxy-test-call.js` + * @param {boolean} [options.paginate] - opt-in: for endpoints with `pagination: true`, add + * `$top` and follow `@odata.nextLink`. Off by default - endpoints run as a single call. + * @param {number} [options.pageSize] - with `paginate`, page size ($top) requested per call (default 1) + * @param {number} [options.maxPages] - with `paginate`, max pages to follow per endpoint (default 3) * @returns {Object} */ async function callDataSourceEndpoints(options) { const logger = getLogger(options.verbose); + const paginate = !!options.paginate; + const pageSize = options.pageSize ?? DEFAULT_PAGE_SIZE; + const maxPages = options.maxPages ?? DEFAULT_MAX_PAGES; const dataSourceSpec = spec[options.dataSource]; if (!dataSourceSpec) { throw new Error(`Unknown data source: ${options.dataSource}`); } + // Pagination mechanics (page-size query param, next-page cursor field) vary per API + // family, so they're declared on the data source itself, not assumed by the runner. + const pageSizeParam = dataSourceSpec.pageSizeParam; + const nextLinkAccessor = dataSourceSpec.nextLinkAccessor; + const results = {}; for (const endpoint of dataSourceSpec.endpoints) { + const shouldPaginate = paginate && !!endpoint.pagination; + + const params = { ...endpoint.params }; + if (shouldPaginate && pageSizeParam) { + params[pageSizeParam] = pageSize; + } + let paramsString = ''; - if (endpoint.params) { - const params = new URLSearchParams(); - for (const [key, value] of Object.entries(endpoint.params)) { - params.append(key, value); + if (Object.keys(params).length > 0) { + const urlParams = new URLSearchParams(); + for (const [key, value] of Object.entries(params)) { + urlParams.append(key, value); } - paramsString = `?${params.toString()}`; + paramsString = `?${urlParams.toString()}`; } const url = options.url + endpoint.path + paramsString; logger.info(`${chalk.blue(dataSourceSpec.name)}, ${endpoint.name} endpoint -> ${endpoint.path}${paramsString}`); - const result = await psoxyTestCall({ - ...options, - url: url, - }); - results[endpoint] = result; + const pages = []; + let currentUrl = url; + let pageCount = 0; + + do { + const pageResult = await psoxyTestCall({ ...options, url: currentUrl }); + pages.push(pageResult); + pageCount++; + + const nextLink = (shouldPaginate && nextLinkAccessor) + ? _.get(pageResult.data, nextLinkAccessor) + : undefined; + currentUrl = nextLink ? nextLinkToProxyUrl(nextLink, options.url) : undefined; + + if (nextLink) { + if (pageCount < maxPages) { + logger.info(`${chalk.blue(dataSourceSpec.name)}, ${endpoint.name} endpoint -> following ${nextLinkAccessor} (page ${pageCount + 1}/${maxPages})`); + } else { + logger.info(`${chalk.blue(dataSourceSpec.name)}, ${endpoint.name} endpoint -> ${nextLinkAccessor} present but max pages (${maxPages}) reached, stopping`); + } + } + } while (currentUrl && pageCount < maxPages); + + const result = pages[0]; + results[endpoint.name] = pages.length > 1 ? { ...result, pages } : result; if (endpoint.refs) { - transformSpecWithResponse(endpoint.name, result.data, dataSourceSpec); + transformSpecWithResponse(endpoint.name, mergePagesForRefs(pages), dataSourceSpec); } } diff --git a/tools/psoxy-test/data-sources/spec.js b/tools/psoxy-test/data-sources/spec.js index ebdafbe836..3f388af8e7 100644 --- a/tools/psoxy-test/data-sources/spec.js +++ b/tools/psoxy-test/data-sources/spec.js @@ -74,30 +74,6 @@ export default { } ], }, - 'azure-ad': { - name: 'Azure Directory', - endpoints: [ - { - name: 'Users', - path: '/v1.0/users', - }, - { - name: 'Groups', - path: '/v1.0/groups', - refs: [ - { - name: 'Group Members', - accessor: 'value[0].id', - pathReplacement: '[group_id]', - }, - ], - }, - { - name: 'Group Members', - path: '/v1.0/groups/[group_id]/members', - }, - ], - }, 'dropbox-business': { name: 'Dropbox Business', endpoints: [ @@ -352,13 +328,213 @@ export default { }, ], }, + 'msft-copilot': { + name: 'Microsoft Copilot', + pageSizeParam: '$top', + nextLinkAccessor: '@odata.nextLink', + endpoints: [ + { + name: 'Users', + path: '/v1.0/users', + params: { $select: 'id,mail,otherMails' }, + pagination: true, + refs: [ + { + name: 'Interaction History', + accessor: 'value[0].id', + pathReplacement: '[user_id]', + }, + ], + }, + { + name: 'Interaction History', + path: '/beta/copilot/users/[user_id]/interactionHistory/getAllEnterpriseInteractions', + pagination: true, + }, + ], + }, + 'msft-entra-id': { + name: 'Entra ID', + pageSizeParam: '$top', + nextLinkAccessor: '@odata.nextLink', + endpoints: [ + { + name: 'Users', + path: '/v1.0/users', + pagination: true, + }, + { + name: 'Groups', + path: '/v1.0/groups', + pagination: true, + refs: [ + { + name: 'Group Members', + accessor: 'value[0].id', + pathReplacement: '[group_id]', + }, + ], + }, + { + name: 'Group Members', + path: '/v1.0/groups/[group_id]/members', + pagination: true, + }, + ], + }, + 'msft-onedrive': { + name: 'Microsoft OneDrive', + pageSizeParam: '$top', + nextLinkAccessor: '@odata.nextLink', + endpoints: [ + { + name: 'Users', + path: '/v1.0/users', + params: { $select: 'id,mail,otherMails' }, + pagination: true, + refs: [ + { + name: 'User Drives', + accessor: 'value[0].id', + pathReplacement: '[user_id]', + }, + ], + }, + { + name: 'Groups', + path: '/v1.0/groups', + pagination: true, + refs: [ + { + name: 'Group Drives', + accessor: 'value[0].id', + pathReplacement: '[group_id]', + }, + ], + }, + { + name: 'User Drives', + path: '/v1.0/users/[user_id]/drives', + pagination: true, + refs: [ + { + name: 'Drive Delta', + accessor: 'value[0].id', + pathReplacement: '[drive_id]', + }, + { + name: 'Drive Activities', + accessor: 'value[0].id', + pathReplacement: '[drive_id]', + }, + { + name: 'Item Activities', + accessor: 'value[0].id', + pathReplacement: '[drive_id]', + }, + ], + }, + { + name: 'Group Drives', + path: '/v1.0/groups/[group_id]/drives', + pagination: true, + }, + { + name: 'Drive Delta', + path: '/v1.0/drives/[drive_id]/root/delta', + pagination: true, + refs: [ + { + name: 'Item Activities', + accessor: 'value[0].id', + pathReplacement: '[item_id]', + }, + ], + }, + { + name: 'Drive Activities', + path: '/v1.0/drives/[drive_id]/activities', + // rules only allow $expand/$skiptoken here, not $top + pagination: true, + }, + { + name: 'Item Activities', + path: '/v1.0/drives/[drive_id]/items/[item_id]/activities', + // rules only allow $expand/$skiptoken here, not $top + pagination: true, + }, + ], + }, + 'msft-teams': { + name: 'Microsoft Teams', + pageSizeParam: '$top', + nextLinkAccessor: '@odata.nextLink', + endpoints: [ + { + name: 'Users', + path: '/v1.0/users', + params: { $select: 'id,mail,otherMails' }, + pagination: true, + refs: [ + { + name: 'User Chats', + accessor: 'value[0].id', + pathReplacement: '[user_id]', + }, + ], + }, + { + name: 'User Chats', + path: '/v1.0/users/[user_id]/chats', + pagination: true, + }, + { + name: 'Teams', + path: '/v1.0/teams', + pagination: true, + refs: [ + { + name: 'Teams Channels', + accessor: 'value[0].id', + pathReplacement: '[team_id]', + }, + { + name: 'Channel Messages', + accessor: 'value[0].id', + pathReplacement: '[team_id]', + }, + ], + }, + { + name: 'Teams Channels', + path: '/v1.0/teams/[team_id]/allChannels', + // rules only allow $select/$filter here, not $top + pagination: true, + refs: [ + { + name: 'Channel Messages', + accessor: 'value[0].id', + pathReplacement: '[channel_id]', + }, + ], + }, + { + name: 'Channel Messages', + path: '/v1.0/teams/[team_id]/channels/[channel_id]/messages', + pagination: true, + }, + ], + }, 'outlook-cal': { name: 'Outlook Calendar', + pageSizeParam: '$top', + nextLinkAccessor: '@odata.nextLink', endpoints: [ { name: 'Users', path: '/v1.0/users', params: { $select: 'id,mail,otherMails' }, + pagination: true, refs: [ { name: 'Events', @@ -370,10 +546,12 @@ export default { { name: 'Events', path: '/v1.0/users/[user_id]/events', + pagination: true, }, { name: 'Groups', - path: '/beta/groups', + path: '/v1.0/groups', + pagination: true, refs: [ { name: 'Group Members', @@ -384,17 +562,21 @@ export default { }, { name: 'Group Members', - path: '/beta/groups/[group_id]/members', + path: '/v1.0/groups/[group_id]/members', + pagination: true, }, ], }, 'outlook-mail': { name: 'Outlook Mail', + pageSizeParam: '$top', + nextLinkAccessor: '@odata.nextLink', endpoints: [ { name: 'Users', - path: '/beta/users', + path: '/v1.0/users', params: { $select: 'id,mail,otherMails' }, + pagination: true, refs: [ { name: 'Mailbox Settings', @@ -410,7 +592,8 @@ export default { }, { name: 'Groups', - path: '/beta/groups', + path: '/v1.0/groups', + pagination: true, refs: [ { name: 'Group Members', @@ -421,15 +604,17 @@ export default { }, { name: 'Group Members', - path: '/beta/groups/[group_id]/members', + path: '/v1.0/groups/[group_id]/members', + pagination: true, }, { name: 'Mailbox Settings', - path: '/beta/users/[user_id]/mailboxSettings', + path: '/v1.0/users/[user_id]/mailboxSettings', }, { name: 'Messages Sent', - path: '/beta/users/[user_id]/mailFolders/SentItems/messages', + path: '/v1.0/users/[user_id]/mailFolders/SentItems/messages', + pagination: true, } ], },