Microsoft Azure · Arazzo Workflow

Microsoft Azure Create Resource Group and Deploy From Template Link

Version 1.0.0

Create a resource group then deploy an ARM template referenced by URI, polling to completion.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub API ManagementCloudCloud ComputingEnterpriseInfrastructure-as-a-ServicePlatform-as-a-ServiceT1ArazzoWorkflows

Provider

microsoft-azure

Workflows

deploy-from-template-link
Provision a resource group and deploy a linked ARM template, polling to completion.
Creates the resource group, submits a deployment that references a hosted template and parameters file, then polls the deployment until terminal.
3 steps inputs: accessToken, apiVersion, deploymentName, location, parametersUri, resourceGroupName, subscriptionId, templateUri outputs: deploymentId, finalProvisioningState, resourceGroupId
1
createResourceGroup
Create or update the target resource group so the deployment has a scope.
2
startLinkedDeployment
Start an incremental deployment that references the template and parameters by URI rather than embedding them in the request.
3
pollDeployment
Get the deployment and branch on its provisioning state: end on Succeeded, end on Failed or Canceled, otherwise loop back and poll again.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Microsoft Azure Create Resource Group and Deploy From Template Link
  summary: Create a resource group then deploy an ARM template referenced by URI, polling to completion.
  description: >-
    A variant of the standard provisioning flow that deploys from a linked
    template and linked parameters file rather than inline content. The workflow
    creates the resource group, submits a deployment whose templateLink and
    parametersLink point at hosted JSON files, and then polls the deployment
    until its provisioning state is terminal, branching on success or failure.
    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
  x-realizes-capability-ids:
  - BC-600.50
  - BC-610.60
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-600.50
      capability_name: IT Infrastructure Management
      spec: microsoft-azure-resource-groups-api-openapi.yml
      confidence: 0.75
    - capability_id: BC-610.60
      capability_name: Artificial Intelligence Management
      spec: microsoft-azure-deployments-api-openapi.yml
      confidence: 0.78
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: deploymentsApi
  url: ../openapi/microsoft-azure-deployments-api-openapi.yml
  type: openapi
- name: resourceGroupsApi
  url: ../openapi/microsoft-azure-resource-groups-api-openapi.yml
  type: openapi
workflows:
- workflowId: deploy-from-template-link
  summary: Provision a resource group and deploy a linked ARM template, polling to completion.
  description: >-
    Creates the resource group, submits a deployment that references a hosted
    template and parameters file, then polls the deployment until terminal.
  inputs:
    type: object
    required:
    - accessToken
    - subscriptionId
    - resourceGroupName
    - location
    - deploymentName
    - templateUri
    properties:
      accessToken:
        type: string
        description: An Azure Resource Manager OAuth2 bearer access token.
      subscriptionId:
        type: string
        description: The ID of the target subscription.
      resourceGroupName:
        type: string
        description: The name of the resource group to create and deploy into.
      location:
        type: string
        description: The Azure region for the resource group (e.g. eastus).
      deploymentName:
        type: string
        description: The name of the deployment.
      templateUri:
        type: string
        description: The URI of the hosted ARM template JSON file.
      parametersUri:
        type: string
        description: The URI of the hosted deployment parameters JSON file.
      apiVersion:
        type: string
        description: The Azure Resource Manager API version.
        default: '2024-03-01'
  steps:
  - stepId: createResourceGroup
    description: Create or update the target resource group so the deployment has a scope.
    operationId: ResourceGroups_CreateOrUpdate
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: resourceGroupName
      in: path
      value: $inputs.resourceGroupName
    - name: api-version
      in: query
      value: $inputs.apiVersion
    requestBody:
      contentType: application/json
      payload:
        location: $inputs.location
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      resourceGroupId: $response.body#/id
  - stepId: startLinkedDeployment
    description: >-
      Start an incremental deployment that references the template and parameters
      by URI rather than embedding them in the request.
    operationId: Deployments_CreateOrUpdate
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: resourceGroupName
      in: path
      value: $inputs.resourceGroupName
    - name: deploymentName
      in: path
      value: $inputs.deploymentName
    - name: api-version
      in: query
      value: $inputs.apiVersion
    requestBody:
      contentType: application/json
      payload:
        properties:
          templateLink:
            uri: $inputs.templateUri
          parametersLink:
            uri: $inputs.parametersUri
          mode: Incremental
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      deploymentId: $response.body#/id
      provisioningState: $response.body#/properties/provisioningState
  - stepId: pollDeployment
    description: >-
      Get the deployment and branch on its provisioning state: end on Succeeded,
      end on Failed or Canceled, otherwise loop back and poll again.
    operationId: Deployments_Get
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: resourceGroupName
      in: path
      value: $inputs.resourceGroupName
    - name: deploymentName
      in: path
      value: $inputs.deploymentName
    - name: api-version
      in: query
      value: $inputs.apiVersion
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      provisioningState: $response.body#/properties/provisioningState
    onSuccess:
    - name: linkedDeploymentSucceeded
      type: end
      criteria:
      - context: $response.body
        condition: $.properties.provisioningState == "Succeeded"
        type: jsonpath
    - name: linkedDeploymentFailed
      type: end
      criteria:
      - context: $response.body
        condition: $.properties.provisioningState == "Failed" || $.properties.provisioningState == "Canceled"
        type: jsonpath
    - name: keepPolling
      type: goto
      stepId: pollDeployment
      criteria:
      - context: $response.body
        condition: $.properties.provisioningState != "Succeeded" && $.properties.provisioningState != "Failed" && $.properties.provisioningState != "Canceled"
        type: jsonpath
  outputs:
    resourceGroupId: $steps.createResourceGroup.outputs.resourceGroupId
    deploymentId: $steps.startLinkedDeployment.outputs.deploymentId
    finalProvisioningState: $steps.pollDeployment.outputs.provisioningState

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/microsoft-azure-create-resource-group-and-deploy-from-link-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.