Microsoft Word · Arazzo Workflow

Microsoft Word Resumable Upload Session

Version 1.0.0

Open a resumable upload session for a large Word document and confirm the stored item afterward.

1 workflow 1 source API 1 provider
View Spec View on GitHub DocumentsMicrosoft 365OfficeProductivityWord ProcessingArazzoWorkflows

Provider

microsoft-word

Workflows

resumable-upload-session
Create an upload session and confirm the stored document.
Creates a resumable upload session for a large document, then reads the drive item and its versions to confirm the stored result.
3 steps inputs: fileName, itemId outputs: itemId, uploadUrl, versions
1
createSession
createUploadSession
Create a resumable upload session for the large document, renaming on conflict. Graph returns 200 with the upload session details.
2
getItem
getDriveItem
Read the drive item metadata to confirm the document name and size after the upload session is established. Graph returns 200 with the item.
3
listVersions
listVersions
List the version history of the item to confirm the uploaded content is tracked. Graph returns 200 with the version collection.

Source API Descriptions

Arazzo Workflow Specification

microsoft-word-resumable-upload-session-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Microsoft Word Resumable Upload Session
  summary: Open a resumable upload session for a large Word document and confirm the stored item afterward.
  description: >-
    Preparing to upload a large Word document in resumable chunks with Microsoft
    Graph. The workflow creates an upload session for the target drive item with
    a rename-on-conflict behavior, then reads back the drive item metadata and
    lists its versions to confirm the document is in place. 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: graphApi
  url: ../openapi/microsoft-word-graph-api.yaml
  type: openapi
workflows:
- workflowId: resumable-upload-session
  summary: Create an upload session and confirm the stored document.
  description: >-
    Creates a resumable upload session for a large document, then reads the drive
    item and its versions to confirm the stored result.
  inputs:
    type: object
    required:
    - itemId
    - fileName
    properties:
      itemId:
        type: string
        description: The drive item identifier to create the upload session against.
      fileName:
        type: string
        description: The name of the file being uploaded in the session.
  steps:
  - stepId: createSession
    description: >-
      Create a resumable upload session for the large document, renaming on
      conflict. Graph returns 200 with the upload session details.
    operationId: createUploadSession
    parameters:
    - name: item-id
      in: path
      value: $inputs.itemId
    requestBody:
      contentType: application/json
      payload:
        item:
          '@microsoft.graph.conflictBehavior': rename
          name: $inputs.fileName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      uploadUrl: $response.body#/uploadUrl
      expirationDateTime: $response.body#/expirationDateTime
      nextExpectedRanges: $response.body#/nextExpectedRanges
  - stepId: getItem
    description: >-
      Read the drive item metadata to confirm the document name and size after
      the upload session is established. Graph returns 200 with the item.
    operationId: getDriveItem
    parameters:
    - name: item-id
      in: path
      value: $inputs.itemId
    - name: $select
      in: query
      value: id,name,size,file
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      itemId: $response.body#/id
      name: $response.body#/name
      size: $response.body#/size
  - stepId: listVersions
    description: >-
      List the version history of the item to confirm the uploaded content is
      tracked. Graph returns 200 with the version collection.
    operationId: listVersions
    parameters:
    - name: item-id
      in: path
      value: $steps.getItem.outputs.itemId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      versions: $response.body#/value
  outputs:
    uploadUrl: $steps.createSession.outputs.uploadUrl
    itemId: $steps.getItem.outputs.itemId
    versions: $steps.listVersions.outputs.versions