arazzo: 1.0.1 info: title: Microsoft Teams Discover Channel Tabs summary: List a team's channels and enumerate the tabs in a chosen channel. description: >- Tabs surface apps and content inside a channel. This workflow lists the channels in a team, branches on whether any channel exists, and enumerates the tabs configured in the chosen channel. Every step spells out its request inline so the flow can be read and executed without opening the underlying OpenAPI description. version: 1.0.0 sourceDescriptions: - name: teamsApi url: ../openapi/microsoft-teams-graph-api.yaml type: openapi workflows: - workflowId: discover-channel-tabs summary: Resolve channels and list the tabs in a chosen channel. description: >- Lists the team's channels and, when at least one exists, enumerates the tabs in the supplied channel. inputs: type: object required: - accessToken - teamId - channelId properties: accessToken: type: string description: OAuth 2.0 bearer token with Channel.ReadBasic.All and TeamsTab.Read.All scopes. teamId: type: string description: The unique identifier of the team. channelId: type: string description: The channel id to list tabs from. steps: - stepId: listChannels description: >- List the channels in the team to confirm the target channel exists before listing its tabs. operationId: listChannels parameters: - name: Authorization in: header value: "Bearer $inputs.accessToken" - name: team-id in: path value: $inputs.teamId successCriteria: - condition: $statusCode == 200 outputs: channels: $response.body#/value onSuccess: - name: channelsFound type: goto stepId: listTabs criteria: - context: $response.body condition: $.value.length > 0 type: jsonpath - name: noChannels type: end criteria: - context: $response.body condition: $.value.length == 0 type: jsonpath - stepId: listTabs description: >- List the tabs configured in the chosen channel. operationId: listChannelTabs parameters: - name: Authorization in: header value: "Bearer $inputs.accessToken" - name: team-id in: path value: $inputs.teamId - name: channel-id in: path value: $inputs.channelId successCriteria: - condition: $statusCode == 200 outputs: tabs: $response.body#/value outputs: tabs: $steps.listTabs.outputs.tabs