Skip to content

feat: add missing endpoints (Paged Members, Meeting Notifs) & address client gaps#327

Open
lilyydu wants to merge 6 commits intomainfrom
lilyydu/noop-clients
Open

feat: add missing endpoints (Paged Members, Meeting Notifs) & address client gaps#327
lilyydu wants to merge 6 commits intomainfrom
lilyydu/noop-clients

Conversation

@lilyydu
Copy link
Collaborator

@lilyydu lilyydu commented Mar 25, 2026

  • went through the list of gaps and differences betw our clients vs. backend implementation (started with @singhk97 's list and then had Claude re-verify or re-test).
  • added in the missing endpoints from BF, verified that these exist in backend codebase, and manually had Claude verify them w/ my test bot

Issues Addressed

  • role in TeamsChannelAccount comes in as userRole instead. updated to be str instead of fixed value, matching BE.
  • aadObjectId is either returned as aadObjectId or objectId (scenario dependent)
  • for GET v3/teams/{id}/conversations, needed to index into response.json()["conversations"]. I manually tested this.
  • missing tenant_id in TeamDetails
  • No DELETE member route for DELETE v3/conversations/{id}/members/{id}
  • GET v3/conversations/{id}/activities/{id}/members returns TeamsChannelAccount, not Account
  • Extra parameters topic and bot in CreateConversationParams for {service_url}/v3/conversations
  • No GET v3/conversations route

New Endpoints

  1. Paged Conversation Members
    Added get_paged() to ConversationMemberClient. Supports optional page_size and continuation_token query params.

  2. Meeting Notifications
    Added send_notification() to MeetingClient. Sends a targeted in-meeting notification to specific recipients on specified surfaces (e.g. meetingTabIcon, meetingStage). This is different from targeted messages, this was introduced in 2022. Requires this RSC permission OnlineMeetingNotification.Send.Chat and ECS flag enabled for the tenant/bot.

Copilot AI review requested due to automatic review settings March 25, 2026 21:10
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds missing Bot Framework/Teams API surface area to the Python SDK and aligns several models/clients with observed backend response shapes.

Changes:

  • Added new API clients/models for batch conversation operations and meeting notifications.
  • Added paged conversation members support and updated member/activity return types.
  • Fixed/extended model field aliasing (AAD object ID variants, userRole) and added tenant_id to TeamDetails; adjusted team conversations response parsing.

Reviewed changes

Copilot reviewed 27 out of 27 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
packages/apps/src/microsoft_teams/apps/routing/activity_context.py Removes deprecated/unused bot param from CreateConversationParams usage.
packages/apps/src/microsoft_teams/apps/contexts/function_context.py Removes deprecated/unused bot param from CreateConversationParams usage.
packages/api/tests/unit/test_meeting_client.py Adds tests for MeetingClient.send_notification().
packages/api/tests/unit/test_conversation_client.py Updates conversation tests for removed fields and adds paged members tests.
packages/api/tests/unit/test_batch_client.py Adds unit tests for new BatchClient.
packages/api/tests/conftest.py Extends mock transport with batch, meeting notification, paged members, and team conversations response shape.
packages/api/src/microsoft_teams/api/models/team_details.py Adds tenant_id to TeamDetails.
packages/api/src/microsoft_teams/api/models/meetings/meeting_notification.py Introduces meeting notification request/response models.
packages/api/src/microsoft_teams/api/models/meetings/init.py Exports meeting notification models.
packages/api/src/microsoft_teams/api/models/conversation/paged_members_result.py Introduces PagedMembersResult model for paged members API.
packages/api/src/microsoft_teams/api/models/conversation/init.py Exports PagedMembersResult.
packages/api/src/microsoft_teams/api/models/batch/batch_operation_result.py Introduces BatchOperationResult model.
packages/api/src/microsoft_teams/api/models/batch/init.py Exports batch models module.
packages/api/src/microsoft_teams/api/models/account.py Adds alias handling for aadObjectId vs objectId and maps role to userRole.
packages/api/src/microsoft_teams/api/models/init.py Exposes batch models from the top-level models package.
packages/api/src/microsoft_teams/api/clients/team/client.py Updates get_conversations() to read from response.json()[\"conversations\"].
packages/api/src/microsoft_teams/api/clients/meeting/client.py Adds send_notification() API.
packages/api/src/microsoft_teams/api/clients/conversation/params.py Removes unused conversation list/get response types and trims create params.
packages/api/src/microsoft_teams/api/clients/conversation/member.py Adds get_paged() and removes member delete operation.
packages/api/src/microsoft_teams/api/clients/conversation/client.py Adds members().get_paged() and removes conversations list get().
packages/api/src/microsoft_teams/api/clients/conversation/activity.py Adjusts activity members return type to TeamsChannelAccount.
packages/api/src/microsoft_teams/api/clients/conversation/init.py Updates exports after removing get/list params/response.
packages/api/src/microsoft_teams/api/clients/batch/params.py Adds request param models for batch conversation endpoints.
packages/api/src/microsoft_teams/api/clients/batch/client.py Adds BatchClient with send-to-users/tenant/team/channels operations.
packages/api/src/microsoft_teams/api/clients/batch/init.py Exports the batch client and params.
packages/api/src/microsoft_teams/api/clients/api_client.py Wires BatchClient into the top-level ApiClient.
packages/api/src/microsoft_teams/api/clients/init.py Exposes batch client from the top-level clients package.

@lilyydu lilyydu marked this pull request as draft March 25, 2026 22:48
@lilyydu lilyydu changed the title feat: add missing endpoints (Paged Members, Batched Conversation, Meeting Notifs) & address client gaps feat: add missing endpoints (Paged Members, Meeting Notifs) & address client gaps Mar 26, 2026
@lilyydu lilyydu marked this pull request as ready for review March 26, 2026 23:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants