arazzo: 1.0.1 info: title: Azure API Management Provision Backend summary: Register a backend, read it back, then trigger a reconnect. description: >- Registers a backend service that APIs can route to. The workflow creates or updates the backend with a URL and protocol, reads it back to confirm the settings, then triggers a reconnect so the gateway establishes a fresh connection. 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: provision-backend summary: Register a backend and reconnect the gateway to it. description: >- Creates or updates a backend, reads it back, then triggers a reconnect. inputs: type: object required: - subscriptionId - resourceGroupName - serviceName - backendId - url 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. backendId: type: string description: The backend identifier to create. url: type: string description: The backend service URL. protocol: type: string description: The backend communication protocol (e.g. http or soap). steps: - stepId: createBackend description: >- Create or update the backend with the supplied URL and protocol. operationId: Backend_CreateOrUpdate parameters: - name: subscriptionId in: path value: $inputs.subscriptionId - name: resourceGroupName in: path value: $inputs.resourceGroupName - name: serviceName in: path value: $inputs.serviceName - name: backendId in: path value: $inputs.backendId requestBody: contentType: application/json payload: properties: url: $inputs.url protocol: $inputs.protocol successCriteria: - condition: $statusCode == 200 outputs: backendResourceId: $response.body#/id - stepId: getBackend description: >- Read the backend back to confirm the URL and protocol were stored. operationId: Backend_Get parameters: - name: subscriptionId in: path value: $inputs.subscriptionId - name: resourceGroupName in: path value: $inputs.resourceGroupName - name: serviceName in: path value: $inputs.serviceName - name: backendId in: path value: $inputs.backendId successCriteria: - condition: $statusCode == 200 outputs: backendResourceId: $response.body#/id - stepId: reconnectBackend description: >- Trigger a reconnect so the gateway establishes a fresh connection to the backend. operationId: Backend_Reconnect parameters: - name: subscriptionId in: path value: $inputs.subscriptionId - name: resourceGroupName in: path value: $inputs.resourceGroupName - name: serviceName in: path value: $inputs.serviceName - name: backendId in: path value: $inputs.backendId successCriteria: - condition: $statusCode == 200 outputs: backendResourceId: $steps.createBackend.outputs.backendResourceId