openapi: "3.0.3" info: version: 1.35.0 title: OpenFlow Spec contact: name: Ruben Fiszel email: ruben@windmill.dev url: https://windmill.dev license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html externalDocs: description: documentation portal url: https://docs.windmill.dev components: schemas: OpenFlow: type: object properties: summary: type: string description: type: string value: $ref: "#/components/schemas/FlowValue" schema: type: object required: - summary - value FlowValue: type: object properties: modules: type: array items: $ref: "#/components/schemas/FlowModule" failure_module: $ref: "#/components/schemas/FlowModule" retry: type: object properties: constant: type: object properties: attempts: type: integer seconds: type: integer exponential: type: object properties: attempts: type: integer multiplier: type: integer seconds: type: integer required: - modules FlowModule: type: object properties: input_transforms: type: object additionalProperties: $ref: "#/components/schemas/InputTransform" value: $ref: "#/components/schemas/FlowModuleValue" stop_after_if: type: object properties: skip_if_stopped: type: boolean expr: type: string required: - expr summary: type: string suspend: type: integer required: - input_transforms - value InputTransform: oneOf: - $ref: "#/components/schemas/StaticTransform" - $ref: "#/components/schemas/JavascriptTransform" discriminator: propertyName: type mapping: static: "#/components/schemas/StaticTransform" javascript: "#/components/schemas/JavascriptTransform" StaticTransform: type: object properties: value: {} type: type: string enum: - javascript required: - expr - type JavascriptTransform: type: object properties: expr: type: string type: type: string enum: - javascript required: - expr - type FlowModuleValue: oneOf: - $ref: "#/components/schemas/RawScript" - $ref: "#/components/schemas/PathScript" - $ref: "#/components/schemas/ForloopFlow" - $ref: "#/components/schemas/PathFlow" discriminator: propertyName: type mapping: rawscript: "#/components/schemas/RawScript" script: "#/components/schemas/PathScript" forloopflow: "#/components/schemas/ForloopFlow" flow: "#/components/schemas/PathFlow" RawScript: type: object properties: content: type: string language: type: string enum: - deno - python3 - go path: type: string type: type: string required: - type - content - language PathScript: type: object properties: path: type: string type: type: string enum: - script required: - type - path PathFlow: type: object properties: path: type: string type: type: string enum: - flow required: - type ForloopFlow: type: object properties: modules: type: array items: $ref: "#/components/schemas/FlowModule" iterator: $ref: "#/components/schemas/InputTransform" skip_failures: type: boolean type: type: string enum: - forloopflow required: - modules - iterator - skip_failures - type FlowStatus: type: object properties: step: type: integer modules: type: array items: $ref: "#/components/schemas/FlowStatusModule" failure_module: $ref: "#/components/schemas/FlowStatusModule" retry: type: object properties: fail_count: type: integer required: - step - modules - failure_module FlowStatusModule: type: object properties: type: type: string enum: - WaitingForPriorSteps - WaitingForEvent - WaitingForExecutor - InProgress - Success - Failure job: type: string format: uuid count: type: integer iterator: type: object properties: index: type: integer itered: type: array items: {} args: {} forloop_jobs: type: array items: type: string required: [type]