Cisco Crosswork · OpenAPI Overlay 1.0.0

API Evangelist enhancements to the Cisco Crosswork Workflow Manager contract

8 actions 8 updates servers extends openapi/_original/cisco-crosswork-cwm-workflow-manager-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for Cisco Crosswork's API. It is a proposal applied on top of the contract, not a document Cisco Crosswork publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-provenancetermsOfServicex-evidenceopenapiserversx-operationId-sourcesecurityx-split-by

Targets 3

$.info
$
$.paths.*.*

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements to the Cisco Crosswork Workflow Manager contract
  version: 1.0.0
  x-generated: '2026-08-19'
  x-method: generated
  x-source: openapi/_original/cisco-crosswork-cwm-workflow-manager-openapi.json
  x-note: >-
    This overlay records, as an auditable diff, every change API Evangelist made when turning Cisco's published
    Crosswork Workflow Manager 2.1 reference into the refined openapi/cisco-crosswork-cwm-*-api-openapi.yml
    documents. It exists so the enhancements can be reviewed, replayed or rejected independently of the harvest.
    The harvested document itself is never mutated.
extends: openapi/_original/cisco-crosswork-cwm-workflow-manager-openapi.json
actions:
- target: $.info
  description: >-
    Stamp provenance. Records that Cisco authored the contract, that API Evangelist harvested it, when, and how —
    reconstructed from the per-operation Swagger 2.0 fragments Cisco serves behind the DevNet reference renderer
    rather than from a downloadable spec file, because Cisco publishes none for CWM.
  update:
    x-provenance:
      method: harvested
      authored_by: Cisco Crosswork
      harvested_by: API Evangelist
      harvested_on: '2026-08-19'
      first_party: true
      provider_published: true
- target: $.info
  description: >-
    Add termsOfService as a resolvable URL. Cisco's own document sets info.termsOfService to the bare string
    "www.cisco.com", which is not a URI and will not resolve for a consumer.
  update:
    termsOfService: https://www.cisco.com/c/en/us/about/legal/terms-conditions.html
- target: $.info
  description: Attach the evidence trail — the reference page and the fragment root the contract was read from.
  update:
    x-evidence:
    - type: source
      url: https://developer.cisco.com/docs/crosswork/workflow-manager/
    - type: raw
      url: https://pubhub.devnetcloud.com/media/crosswork-workflow-manager-api-document/docs/262737b2-b3c2-32cd-b07b-fdbdcd23918f/apis/
- target: $
  description: >-
    Convert Swagger 2.0 to OpenAPI 3.2.0 — definitions to components.schemas, body parameters to requestBody,
    formData parameters to a multipart requestBody, response schema to content-keyed media types, and
    securityDefinitions to components.securitySchemes. No semantics are added or removed.
  update:
    openapi: 3.2.0
- target: $
  description: >-
    Express Cisco's basePath as a servers[] entry, annotated to say what it is relative to. Crosswork is
    customer-deployed, so the host is genuinely unknown to the publisher; the annotation says so rather than
    inventing one.
  update:
    servers:
    - url: /crosswork/cwm/v2
      description: Relative to the customer-deployed Crosswork Workflow Manager host (https://{cwm-host}:{port})
- target: $.paths.*.*
  description: >-
    Synthesise an operationId where Cisco's source omits one. 8 of the 90 operations ship without an operationId,
    which makes them unaddressable by every downstream tool; the synthesised value is derived deterministically
    from method plus path so it is stable across re-harvests.
  update:
    x-operationId-source: synthesised-by-api-evangelist-where-absent
- target: $.paths.*.*
  description: >-
    Apply the declared Bearer security scheme to every operation. Cisco declares the scheme globally but attaches
    it to no operation, so a generated client would emit unauthenticated calls against an API where every call
    requires a JWT.
  update:
    security:
    - Bearer: []
- target: $
  description: >-
    Split the single 90-operation document into one document per tag (16 files), carrying only the schemas each tag
    transitively references. Matches the one-API-per-resource shape the rest of this repo uses.
  update:
    x-split-by: tag
    x-split-into: 16