Microsoft Exchange · Arazzo Workflow

Microsoft Exchange Discover Mailbox Content

Version 1.0.0

Discover a user's mailbox, drill into its folders, and list folder items.

1 workflow 1 source API 1 provider
View Spec View on GitHub CalendarCollaborationContactsEmailEnterpriseArazzoWorkflows

Provider

microsoft-exchange

Workflows

discover-mailbox-content
Resolve a user's mailbox, its folders, and a folder's items.
Lists the mailboxes for a user, lists folders in the first mailbox, and lists items in the first folder.
3 steps inputs: userId outputs: firstItemId, folderId, mailboxId
1
listMailboxes
listMailboxes
Discover the mailboxes associated with the user, returning the first mailbox identifier.
2
listFolders
listMailboxFolders
List the folders in the first discovered mailbox, returning the first folder identifier.
3
listItems
listMailboxFolderItems
List the items in the first folder to prepare for export processing.

Source API Descriptions

Arazzo Workflow Specification

microsoft-exchange-discover-mailbox-content-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Microsoft Exchange Discover Mailbox Content
  summary: Discover a user's mailbox, drill into its folders, and list folder items.
  description: >-
    A discovery pattern on the Microsoft Graph import/export API. The workflow
    finds the mailboxes for a user, drills into the first mailbox to list its
    folders, and then lists the items in the first folder to prepare for export
    or migration. Each step inlines its request so the flow can be executed
    without consulting the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: graphImportExportApi
  url: ../openapi/microsoft-exchange-graph-import-export-openapi.yml
  type: openapi
workflows:
- workflowId: discover-mailbox-content
  summary: Resolve a user's mailbox, its folders, and a folder's items.
  description: >-
    Lists the mailboxes for a user, lists folders in the first mailbox, and
    lists items in the first folder.
  inputs:
    type: object
    required:
    - userId
    properties:
      userId:
        type: string
        description: The user id or user principal name whose mailbox is discovered.
  steps:
  - stepId: listMailboxes
    description: >-
      Discover the mailboxes associated with the user, returning the first
      mailbox identifier.
    operationId: listMailboxes
    parameters:
    - name: user-id
      in: path
      value: $inputs.userId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      mailboxId: $response.body#/value/0/id
  - stepId: listFolders
    description: >-
      List the folders in the first discovered mailbox, returning the first
      folder identifier.
    operationId: listMailboxFolders
    parameters:
    - name: user-id
      in: path
      value: $inputs.userId
    - name: mailbox-id
      in: path
      value: $steps.listMailboxes.outputs.mailboxId
    - name: $top
      in: query
      value: 50
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      folderId: $response.body#/value/0/id
      folderName: $response.body#/value/0/displayName
  - stepId: listItems
    description: >-
      List the items in the first folder to prepare for export processing.
    operationId: listMailboxFolderItems
    parameters:
    - name: user-id
      in: path
      value: $inputs.userId
    - name: mailbox-id
      in: path
      value: $steps.listMailboxes.outputs.mailboxId
    - name: folder-id
      in: path
      value: $steps.listFolders.outputs.folderId
    - name: $top
      in: query
      value: 25
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstItemId: $response.body#/value/0/id
  outputs:
    mailboxId: $steps.listMailboxes.outputs.mailboxId
    folderId: $steps.listFolders.outputs.folderId
    firstItemId: $steps.listItems.outputs.firstItemId