arazzo: 1.0.1 info: title: Azure API Management Register API Schema summary: Confirm an API exists, register a schema for it, then list the API's schemas. description: >- Attaches a schema definition (such as a JSON or OpenAPI component schema) that operations reference. The workflow reads the API to confirm it exists, creates or updates a schema document, then lists the API's schemas to confirm registration. 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: register-api-schema summary: Register a schema for an API and confirm it. description: >- Confirms the API exists, registers a schema document, then lists the API's schemas to verify. inputs: type: object required: - subscriptionId - resourceGroupName - serviceName - apiId - schemaId - contentType 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 register the schema for. schemaId: type: string description: The schema identifier to create. contentType: type: string description: The schema content type (e.g. application/vnd.oai.openapi.components+json). definitions: type: object description: The schema definitions document. steps: - stepId: getApi description: >- Read the API to confirm it exists before registering a schema. 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: createSchema description: >- Create or update the schema document for the API. operationId: ApiSchema_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: schemaId in: path value: $inputs.schemaId requestBody: contentType: application/json payload: properties: contentType: $inputs.contentType document: definitions: $inputs.definitions successCriteria: - condition: $statusCode == 200 outputs: schemaResourceId: $response.body#/id - stepId: listSchemas description: >- List the API's schemas to confirm the new schema is registered. operationId: ApiSchema_ListByApi 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: schemaCount: $response.body#/count outputs: schemaResourceId: $steps.createSchema.outputs.schemaResourceId schemaCount: $steps.listSchemas.outputs.schemaCount