Apigee · Arazzo Workflow

Apigee Promote a New Proxy Revision

Version 1.0.0

List a proxy's revisions, deploy the newest one with override, then undeploy the prior revision.

1 workflow 1 source API 1 provider
View Spec View on GitHub Advanced API SecurityAgentic AIAnalyticsAPI GatewayAPI GovernanceAPI HubAPI ManagementDeveloper PortalEnterpriseGenerative AIHybridIntegrationsMicroservicesMCPModel Context ProtocolMonetizationArazzoWorkflows

Provider

apigee

Workflows

promote-proxy-revision
Deploy the latest proxy revision and retire the previously deployed one.
Reads the proxy to discover the latest revision, deploys it to the environment with override enabled, and undeploys the prior revision to complete the promotion.
3 steps inputs: apiId, environmentId, organizationId, previousRevisionId outputs: deploymentState, latestRevisionId, undeployedRevision
1
getProxy
getApiProxy
Read the proxy to discover the latest revision id to promote.
2
deployLatest
deployApiProxyRevision
Deploy the latest revision with override so it takes over the base path from the prior revision.
3
undeployPrevious
undeployApiProxyRevision
Undeploy the previously running revision now that the new revision is serving traffic.

Source API Descriptions

Arazzo Workflow Specification

apigee-promote-proxy-revision-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Apigee Promote a New Proxy Revision
  summary: List a proxy's revisions, deploy the newest one with override, then undeploy the prior revision.
  description: >-
    A zero-downtime promotion flow for proxy revisions. The workflow reads the
    target proxy to find its latest revision, deploys that revision to the
    environment with override so it takes over the route, and then undeploys the
    previously running revision. 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: apigeeApiManagement
  url: ../openapi/apigee-api-management-openapi.yml
  type: openapi
workflows:
- workflowId: promote-proxy-revision
  summary: Deploy the latest proxy revision and retire the previously deployed one.
  description: >-
    Reads the proxy to discover the latest revision, deploys it to the
    environment with override enabled, and undeploys the prior revision to
    complete the promotion.
  inputs:
    type: object
    required:
    - organizationId
    - environmentId
    - apiId
    - previousRevisionId
    properties:
      organizationId:
        type: string
        description: The Apigee organization owning the proxy.
      environmentId:
        type: string
        description: The environment where the revision is promoted.
      apiId:
        type: string
        description: The API proxy whose revision is being promoted.
      previousRevisionId:
        type: string
        description: The currently deployed revision to undeploy after promotion.
  steps:
  - stepId: getProxy
    description: >-
      Read the proxy to discover the latest revision id to promote.
    operationId: getApiProxy
    parameters:
    - name: organizationId
      in: path
      value: $inputs.organizationId
    - name: apiId
      in: path
      value: $inputs.apiId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      latestRevisionId: $response.body#/latestRevisionId
  - stepId: deployLatest
    description: >-
      Deploy the latest revision with override so it takes over the base path
      from the prior revision.
    operationId: deployApiProxyRevision
    parameters:
    - name: organizationId
      in: path
      value: $inputs.organizationId
    - name: environmentId
      in: path
      value: $inputs.environmentId
    - name: apiId
      in: path
      value: $inputs.apiId
    - name: revisionId
      in: path
      value: $steps.getProxy.outputs.latestRevisionId
    - name: override
      in: query
      value: true
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      deploymentState: $response.body#/state
  - stepId: undeployPrevious
    description: >-
      Undeploy the previously running revision now that the new revision is
      serving traffic.
    operationId: undeployApiProxyRevision
    parameters:
    - name: organizationId
      in: path
      value: $inputs.organizationId
    - name: environmentId
      in: path
      value: $inputs.environmentId
    - name: apiId
      in: path
      value: $inputs.apiId
    - name: revisionId
      in: path
      value: $inputs.previousRevisionId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      undeployedRevision: $response.body#/revision
  outputs:
    latestRevisionId: $steps.getProxy.outputs.latestRevisionId
    deploymentState: $steps.deployLatest.outputs.deploymentState
    undeployedRevision: $steps.undeployPrevious.outputs.undeployedRevision