pybackive/backive/config/schema.yml

93 lines
3.2 KiB
YAML
Raw Normal View History

2019-02-22 21:26:01 +01:00
### backive config schema
#
#
definitions:
device_section:
type: object
patternProperties:
2019-05-03 20:36:09 +02:00
"^[^ \t/\\]+$":
# The pattern can be any name...
2019-05-03 20:36:09 +02:00
# "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$":
2019-02-22 21:26:01 +01:00
type: object
properties:
uuid:
2019-02-22 21:26:01 +01:00
type: string
mountname:
type: string
required:
- mountname
- uuid
2019-02-22 21:26:01 +01:00
additionalProperties: false
backup_section:
type: object
patternProperties:
"^[a-zA-Z0-9_-]+$":
type: object
properties:
user:
type: string
from:
type: string
# from directory
# from_remote:
# type: object
# properties:
# user:
# type: string
# password:
# type: string
# ssh_key_path:
# type: string
2019-02-22 21:26:01 +01:00
to:
type: string
# to directory
2019-02-22 21:26:01 +01:00
target_device:
type: string
# target device name
2019-02-22 21:26:01 +01:00
frequency:
type: string
# in numbers? days? weeks?
# or just strings like
# weekly, biweekly, monthly, yearly
# 7d, 2w, 1m, 1y (this needs parser)
#
# No frequency means no reminder and the backup is always started when the device is available, but not more than once a day!
script:
type: string
# MVP just executes a script, nothing else
# scripts:
# type: array
# items:
# type: object
# properties:
# target:
# enum: [ "local", "remote" ]
# script:
# type: string
# execute: [ "before", "after" ]
# additionalProperties: false
# tool:
# type: object
2019-02-22 21:26:01 +01:00
required:
- from
- to
- target_device
- script
2019-02-22 21:26:01 +01:00
additionalProperties: false
preferences_section:
type: object
properties:
mount_root:
type: string
pattern: "^(/[^/]+)+$"
additionalProperties: false
type: object
properties:
devices:
"$ref": "#:/definitions/device_section"
backups:
"$ref": "#:/definitions/backup_section"
preferences:
"$ref": "#:/definitions/preferences_section"