156 lines
4.2 KiB
YAML
156 lines
4.2 KiB
YAML
openapi: 3.0.3
|
|
info:
|
|
version: 0.1.0
|
|
title: Schemata for config models
|
|
servers:
|
|
- url: "."
|
|
paths: {}
|
|
components:
|
|
schemas:
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# Config
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Config:
|
|
description: |-
|
|
Data model for all parts of the configuration.
|
|
type: object
|
|
required:
|
|
- info
|
|
- options
|
|
- calls
|
|
properties:
|
|
info:
|
|
$ref: "#/components/schemas/Info"
|
|
options:
|
|
$ref: "#/components/schemas/AppOptions"
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# Info
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Info:
|
|
description: |-
|
|
Contains meta data about project.
|
|
type: object
|
|
required:
|
|
- title
|
|
- description
|
|
- author
|
|
properties:
|
|
title:
|
|
type: string
|
|
description:
|
|
type: string
|
|
author:
|
|
type: string
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# App Options
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
AppOptions:
|
|
description: |-
|
|
Options pertaining to the rudimentary setup of the app.
|
|
type: object
|
|
required:
|
|
- log-level
|
|
- tsp
|
|
- tarjan
|
|
- hirschberg
|
|
- rucksack-branch-and-bound
|
|
properties:
|
|
log-level:
|
|
$ref: '#/components/schemas/EnumLogLevel'
|
|
verbose:
|
|
description: Global setting for verbosity.
|
|
type: boolean
|
|
default: false
|
|
tarjan:
|
|
type: object
|
|
required:
|
|
- verbose
|
|
properties:
|
|
verbose:
|
|
type: boolean
|
|
default: false
|
|
tsp:
|
|
type: object
|
|
required:
|
|
- verbose
|
|
properties:
|
|
verbose:
|
|
type: boolean
|
|
default: false
|
|
hirschberg:
|
|
type: object
|
|
required:
|
|
- penality-mismatch
|
|
- penality-gap
|
|
- move-priorities
|
|
properties:
|
|
penality-mismatch:
|
|
type: number
|
|
default: 1
|
|
penality-gap:
|
|
type: number
|
|
default: 1
|
|
move-priorities:
|
|
type: object
|
|
properties:
|
|
diagonal:
|
|
type: integer
|
|
minimum: 0
|
|
default: 0
|
|
horizontal:
|
|
type: integer
|
|
minimum: 0
|
|
default: 1
|
|
vertical:
|
|
type: integer
|
|
minimum: 0
|
|
default: 2
|
|
verbose:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/EnumHirschbergVerbosity'
|
|
default: []
|
|
show:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/EnumHirschbergShow'
|
|
default: []
|
|
rucksack:
|
|
type: object
|
|
required:
|
|
- verbose
|
|
properties:
|
|
verbose:
|
|
type: boolean
|
|
default: false
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# Enum LogLevel
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
EnumLogLevel:
|
|
description: |-
|
|
Enumeration of settings for log level.
|
|
type: string
|
|
enum:
|
|
- INFO
|
|
- DEBUG
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# Enum Hirschberg - Verbosity options
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
EnumHirschbergVerbosity:
|
|
description: |-
|
|
Enumeration of verbosity options for Hirschberg
|
|
type: string
|
|
enum:
|
|
- COSTS
|
|
- MOVES
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# Enum Hirschberg - display options
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
EnumHirschbergShow:
|
|
description: |-
|
|
Enumeration of verbosity options for Hirschberg
|
|
type: string
|
|
enum:
|
|
- TREE
|
|
- ATOMS
|