openapi: 3.0.3 info: version: 0.1.0 title: Schemata for command instructions servers: [] paths: {} components: schemas: # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Commands # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Commands: description: |- List of commands to test algorithms/datastructures. type: array items: $ref: "#/components/schemas/Command" default: [] # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Command # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Command: description: |- Instructions for command to call required: - name properties: &ref_command_properties name: $ref: '#/components/schemas/EnumAlgorithmNames' additionalProperties: true # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Command - Algorithm: Tarjan # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CommandTarjan: description: |- Instructions for execution of Tarjan-Algorithm type: object required: - name - nodes - edges properties: <<: *ref_command_properties nodes: type: array edges: type: array items: # $ref: '#/components/schemas/Edge' type: array minItems: 2 maxItems: 2 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Command - Algorithm: TSP # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CommandTsp: description: |- Instructions for execution of TSP-Algorithm type: object required: - name - optimise - dist properties: <<: *ref_command_properties dist: type: array items: type: array items: type: number optimise: $ref: '#/components/schemas/EnumTSPOptimise' # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Command - Algorithm: Hirschberg # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CommandHirschberg: description: |- Instructions for execution of Hirschberg-Algorithm type: object required: - name - word1 - word2 properties: <<: *ref_command_properties word1: description: Word that gets placed vertically in algorithm. type: string word2: description: Word that gets placed horizontally in algorithm type: string once: type: boolean default: false # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Enum Algorithm Names # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ EnumAlgorithmNames: description: |- Enumeration of possible algorithm options. type: string enum: - TARJAN - TSP - HIRSCHBERG # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Enum TSP - Optimise Mode # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ EnumTSPOptimise: description: |- Enumeration of optimisation options for TSP type: string enum: - MIN - MAX