Microsoft Azure API Management · Arazzo Workflow

Azure API Management Publish API Release

Version 1.0.0

Confirm an API exists, create a release for it, then list its releases.

1 workflow 1 source API 1 provider
View Spec View on GitHub A2AAI GatewayAPI CenterAPI GatewayAPI ManagementEnterpriseMCPMicrosoft AzureArazzoWorkflows

Provider

microsoft-azure-api-management

Workflows

publish-api-release
Create a named release for an API and confirm it was recorded.
Reads the API, creates a release record with notes, then lists the API's releases to verify the new release exists.
3 steps inputs: apiId, notes, releaseId, resourceGroupName, serviceName, subscriptionId outputs: releaseCount, releaseResourceId
1
getApi
Api_Get
Read the API to confirm it exists and capture its full resource id for the release record.
2
createRelease
ApiRelease_CreateOrUpdate
Create or update the release record that promotes the current API revision under the supplied release identifier.
3
listReleases
ApiRelease_ListByService
List the releases for the API to confirm the new release was recorded.

Source API Descriptions

Arazzo Workflow Specification

microsoft-azure-api-management-publish-api-release-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Azure API Management Publish API Release
  summary: Confirm an API exists, create a release for it, then list its releases.
  description: >-
    Promotes a specific API revision to a named release. The workflow first
    reads the API to confirm it exists and capture its resource id, creates (or
    updates) a release tying the current revision to a release identifier with
    release notes, then lists releases so the caller can confirm the new
    release is recorded. 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: azureApiManagementApi
  url: ../openapi/microsoft-azure-api-management-rest-api-openapi.yaml
  type: openapi
workflows:
- workflowId: publish-api-release
  summary: Create a named release for an API and confirm it was recorded.
  description: >-
    Reads the API, creates a release record with notes, then lists the API's
    releases to verify the new release exists.
  inputs:
    type: object
    required:
    - subscriptionId
    - resourceGroupName
    - serviceName
    - apiId
    - releaseId
    properties:
      subscriptionId:
        type: string
        description: The Azure subscription identifier.
      resourceGroupName:
        type: string
        description: The resource group containing the service.
      serviceName:
        type: string
        description: The API Management service name.
      apiId:
        type: string
        description: The API identifier to release.
      releaseId:
        type: string
        description: The identifier for the new release.
      notes:
        type: string
        description: Release notes describing the change.
  steps:
  - stepId: getApi
    description: >-
      Read the API to confirm it exists and capture its full resource id for
      the release record.
    operationId: Api_Get
    parameters:
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: resourceGroupName
      in: path
      value: $inputs.resourceGroupName
    - name: serviceName
      in: path
      value: $inputs.serviceName
    - name: apiId
      in: path
      value: $inputs.apiId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      apiResourceId: $response.body#/id
  - stepId: createRelease
    description: >-
      Create or update the release record that promotes the current API
      revision under the supplied release identifier.
    operationId: ApiRelease_CreateOrUpdate
    parameters:
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: resourceGroupName
      in: path
      value: $inputs.resourceGroupName
    - name: serviceName
      in: path
      value: $inputs.serviceName
    - name: apiId
      in: path
      value: $inputs.apiId
    - name: releaseId
      in: path
      value: $inputs.releaseId
    requestBody:
      contentType: application/json
      payload:
        properties:
          apiId: $steps.getApi.outputs.apiResourceId
          notes: $inputs.notes
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      releaseResourceId: $response.body#/id
  - stepId: listReleases
    description: >-
      List the releases for the API to confirm the new release was recorded.
    operationId: ApiRelease_ListByService
    parameters:
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    - name: resourceGroupName
      in: path
      value: $inputs.resourceGroupName
    - name: serviceName
      in: path
      value: $inputs.serviceName
    - name: apiId
      in: path
      value: $inputs.apiId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      releaseCount: $response.body#/count
  outputs:
    releaseResourceId: $steps.createRelease.outputs.releaseResourceId
    releaseCount: $steps.listReleases.outputs.releaseCount