aboutsummaryrefslogtreecommitdiff
path: root/interface.json
diff options
context:
space:
mode:
authornotgne22020-11-07 11:56:22 -0700
committernotgne22020-11-07 11:56:22 -0700
commit6ff3994dbb9b44a919ded00882db9b57f92fe228 (patch)
treefe120101c0793850c1fa79331c65049782804bd3 /interface.json
parent3cfc12a2ca5e7d5f6a9c64ddfda025d7599ec8d8 (diff)
Greatly expand documentation
Diffstat (limited to 'interface.json')
-rw-r--r--interface.json117
1 files changed, 117 insertions, 0 deletions
diff --git a/interface.json b/interface.json
new file mode 100644
index 0000000..fa45e50
--- /dev/null
+++ b/interface.json
@@ -0,0 +1,117 @@
+{
+ "$schema": "http://json-schema.org/draft/2019-09/schema#",
+ "title": "Deploy",
+ "description": "Matches a correct deploy attribute of a flake",
+ "definitions": {
+ "generic_settings": {
+ "type": "object",
+ "properties": {
+ "sshUser": {
+ "type": "string"
+ },
+ "user": {
+ "type": "string"
+ },
+ "sshOpts": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fastConnection": {
+ "type": "boolean"
+ },
+ "autoRollback": {
+ "type": "boolean"
+ },
+ "magicRollback": {
+ "type": "boolean"
+ },
+ "confirmTimeout": {
+ "type": "integer"
+ },
+ "tempPath": {
+ "type": "string"
+ }
+ }
+ },
+ "node_settings": {
+ "type": "object",
+ "properties": {
+ "hostname": {
+ "type": "string"
+ },
+ "profilesOrder": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true
+ },
+ "profiles": {
+ "type": "object",
+ "patternProperties": {
+ "[A-z][A-z0-9_-]*": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/generic_settings"
+ },
+ {
+ "$ref": "#/definitions/profile_settings"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "hostname"
+ ]
+ },
+ "profile_settings": {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string"
+ },
+ "bootstrap": {
+ "type": "string"
+ },
+ "profilePath": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ }
+ },
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/generic_settings"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "nodes": {
+ "type": "object",
+ "patternProperties": {
+ "[A-z][A-z0-9_-]*": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/generic_settings"
+ },
+ {
+ "$ref": "#/definitions/node_settings"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ ]
+} \ No newline at end of file