Microsoft Azure Quantum · Arazzo Workflow

Azure Quantum Workspace Bootstrap

Version 1.0.0

Read a workspace, branch on provisioning state, list its keys, and list provider offerings.

1 workflow 1 source API 1 provider
View Spec View on GitHub QuantumQuantum ComputingAzureMicrosoftQ#QDKResource EstimationIonQQuantinuumPasqalRigettiHybrid QuantumFault ToleranceArazzoWorkflows

Provider

microsoft-quantum

Workflows

workspace-bootstrap
Confirm a workspace is provisioned, fetch its keys, and list regional offerings.
Reads the Quantum workspace and inspects its provisioning state. When the workspace provisioning has Succeeded the workflow lists its access keys and the provider offerings available in the workspace location; otherwise it reports the non-terminal provisioning state.
4 steps inputs: apiVersion, authToken, locationName, resourceGroupName, subscriptionId, workspaceName outputs: endpointUri, offerings, pendingProvisioningState, primaryConnectionString, provisioningState
1
getWorkspace
Workspaces_Get
Read the Quantum workspace to confirm it exists and inspect its provisioning state and endpoint.
2
listKeys
Workspaces_ListKeys
Retrieve the workspace access keys and connection strings for client configuration.
3
listOfferings
Offerings_List
List the provider offerings available in the workspace region for onboarding decisions.
4
reportNotReady
Workspaces_Get
The workspace is not in a Succeeded provisioning state; re-read it to surface the current provisioning state for the caller.

Source API Descriptions

Arazzo Workflow Specification

microsoft-quantum-workspace-bootstrap-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Azure Quantum Workspace Bootstrap
  summary: Read a workspace, branch on provisioning state, list its keys, and list provider offerings.
  description: >-
    Onboarding a client against an Azure Quantum workspace starts with confirming
    the workspace is provisioned, retrieving its access keys, and discovering the
    provider offerings available in its region. This workflow reads the workspace
    with Workspaces_Get, branches on provisioningState, lists keys with
    Workspaces_ListKeys when the workspace is Succeeded, and enumerates regional
    offerings with Offerings_List. Each step spells out its request inline,
    including the inline Authorization bearer token and the required api-version
    query parameter.
  version: 1.0.0
sourceDescriptions:
- name: resourceManagerApi
  url: ../openapi/azure-quantum-resource-manager-openapi.json
  type: openapi
workflows:
- workflowId: workspace-bootstrap
  summary: Confirm a workspace is provisioned, fetch its keys, and list regional offerings.
  description: >-
    Reads the Quantum workspace and inspects its provisioning state. When the
    workspace provisioning has Succeeded the workflow lists its access keys and
    the provider offerings available in the workspace location; otherwise it
    reports the non-terminal provisioning state.
  inputs:
    type: object
    required:
    - subscriptionId
    - resourceGroupName
    - workspaceName
    - locationName
    - apiVersion
    - authToken
    properties:
      subscriptionId:
        type: string
        description: The Azure subscription identifier that owns the workspace.
      resourceGroupName:
        type: string
        description: The resource group containing the Quantum workspace.
      workspaceName:
        type: string
        description: The name of the Azure Quantum workspace.
      locationName:
        type: string
        description: The Azure region used to list offerings, e.g. eastus.
      apiVersion:
        type: string
        description: The resource-manager api-version, e.g. 2025-12-15-preview.
      authToken:
        type: string
        description: The Azure AD bearer token (without the "Bearer " prefix).
  steps:
  - stepId: getWorkspace
    description: >-
      Read the Quantum workspace to confirm it exists and inspect its
      provisioning state and endpoint.
    operationId: Workspaces_Get
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.authToken"
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: resourceGroupName
      in: path
      value: $inputs.resourceGroupName
    - name: workspaceName
      in: path
      value: $inputs.workspaceName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      provisioningState: $response.body#/properties/provisioningState
      endpointUri: $response.body#/properties/endpointUri
      apiKeyEnabled: $response.body#/properties/apiKeyEnabled
    onSuccess:
    - name: provisioned
      type: goto
      stepId: listKeys
      criteria:
      - context: $response.body
        condition: $.properties.provisioningState == "Succeeded"
        type: jsonpath
    - name: notProvisioned
      type: goto
      stepId: reportNotReady
      criteria:
      - context: $response.body
        condition: $.properties.provisioningState != "Succeeded"
        type: jsonpath
  - stepId: listKeys
    description: >-
      Retrieve the workspace access keys and connection strings for client
      configuration.
    operationId: Workspaces_ListKeys
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.authToken"
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: resourceGroupName
      in: path
      value: $inputs.resourceGroupName
    - name: workspaceName
      in: path
      value: $inputs.workspaceName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      apiKeyEnabled: $response.body#/apiKeyEnabled
      primaryConnectionString: $response.body#/primaryConnectionString
  - stepId: listOfferings
    description: >-
      List the provider offerings available in the workspace region for
      onboarding decisions.
    operationId: Offerings_List
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.authToken"
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: locationName
      in: path
      value: $inputs.locationName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      offerings: $response.body#/value
      firstOfferingId: $response.body#/value/0/id
    onSuccess:
    - name: done
      type: end
  - stepId: reportNotReady
    description: >-
      The workspace is not in a Succeeded provisioning state; re-read it to
      surface the current provisioning state for the caller.
    operationId: Workspaces_Get
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.authToken"
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: resourceGroupName
      in: path
      value: $inputs.resourceGroupName
    - name: workspaceName
      in: path
      value: $inputs.workspaceName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      pendingProvisioningState: $response.body#/properties/provisioningState
  outputs:
    provisioningState: $steps.getWorkspace.outputs.provisioningState
    endpointUri: $steps.getWorkspace.outputs.endpointUri
    primaryConnectionString: $steps.listKeys.outputs.primaryConnectionString
    offerings: $steps.listOfferings.outputs.offerings
    pendingProvisioningState: $steps.reportNotReady.outputs.pendingProvisioningState