CDK Global · Arazzo Workflow

CDK Global Parts Availability Check

Version 1.0.0

Health-check the parts store, then look up a product only when it is up.

1 workflow 1 source API 1 provider
View Spec View on GitHub AutomotiveDealer ManagementDMSAuto RetailF&IFixed OperationsPartsCRMDigital RetailMarketplaceDeveloper PlatformEventsWebhooksAsyncAPIArazzoWorkflows

Provider

cdk-global

Workflows

parts-availability-check
Confirm the parts store is healthy before reading a product.
Calls the heartbeat endpoint, branches on the reported status code, and reads the requested product's detail only when the server is up.
2 steps inputs: authorization, organization, productNumber, requestId, subscriptionId, userId outputs: healthCode, location, productName
1
pingStore
healthMonitor
Ping the parts store heartbeat and branch on whether it reports the server is up.
2
readProduct
productInformation
Read the requested product's detail now that the store is confirmed healthy.

Source API Descriptions

Arazzo Workflow Specification

cdk-global-parts-availability-check-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: CDK Global Parts Availability Check
  summary: Health-check the parts store, then look up a product only when it is up.
  description: >-
    Guards a parts lookup behind a service health check. The workflow pings the
    parts store heartbeat, branches on whether the server reports it is up, and
    only then reads the requested product's detail. This avoids issuing the
    product call against an unavailable backend. 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: partsStoreApi
  url: ../openapi/fortellis-parts-store-openapi.yml
  type: openapi
workflows:
- workflowId: parts-availability-check
  summary: Confirm the parts store is healthy before reading a product.
  description: >-
    Calls the heartbeat endpoint, branches on the reported status code, and
    reads the requested product's detail only when the server is up.
  inputs:
    type: object
    required:
    - subscriptionId
    - requestId
    - authorization
    - userId
    - organization
    - productNumber
    properties:
      subscriptionId:
        type: string
        description: The Fortellis Marketplace subscription identifier.
      requestId:
        type: string
        description: A correlation GUID echoed back across systems.
      authorization:
        type: string
        description: The Fortellis OAuth 2.0 bearer token (or Basic auth on the simulator).
      userId:
        type: string
        description: Identifies the user accessing the account.
      organization:
        type: string
        description: Identifies the organization that the user is in.
      productNumber:
        type: string
        description: The product number to read once the store is confirmed healthy.
  steps:
  - stepId: pingStore
    description: >-
      Ping the parts store heartbeat and branch on whether it reports the server
      is up.
    operationId: healthMonitor
    parameters:
    - name: Request-Id
      in: header
      value: $inputs.requestId
    - name: Subscription-Id
      in: header
      value: $inputs.subscriptionId
    - name: Authorization
      in: header
      value: $inputs.authorization
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      healthCode: $response.body#/code
    onSuccess:
    - name: storeUp
      type: goto
      stepId: readProduct
      criteria:
      - context: $response.body
        condition: $.code == 200
        type: jsonpath
    - name: storeDown
      type: end
      criteria:
      - context: $response.body
        condition: $.code != 200
        type: jsonpath
  - stepId: readProduct
    description: >-
      Read the requested product's detail now that the store is confirmed
      healthy.
    operationId: productInformation
    parameters:
    - name: productNumber
      in: path
      value: $inputs.productNumber
    - name: User-Id
      in: header
      value: $inputs.userId
    - name: Organization
      in: header
      value: $inputs.organization
    - name: Request-Id
      in: header
      value: $inputs.requestId
    - name: Subscription-Id
      in: header
      value: $inputs.subscriptionId
    - name: Authorization
      in: header
      value: $inputs.authorization
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      productName: $response.body#/name
      location: $response.body#/location
  outputs:
    healthCode: $steps.pingStore.outputs.healthCode
    productName: $steps.readProduct.outputs.productName
    location: $steps.readProduct.outputs.location