summaryrefslogtreecommitdiffstats
path: root/src/genskel/monitor-api.json
blob: 8f4a50ce4ff92547f86eb40953411bf18523bf6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
{
	"namespace": "urn:AGL:binding",

	"api": "monitor",

	"doc": "monitor the bindings",

	"verbs": {
		"set": {
			"doc": "set various values",
			"permissions": { "$ref": "#/permissions/set" },
			"LOA": { "minimum": 2 },
			"request": { "$ref": "#/types/set-request" },
			"response": { "$ref": "#/types/set-response" }
		},
		"get": {
			"doc": "get the verbosity of apis",
			"permissions": { "$ref": "#/permissions/get-or-set" },
			"LOA": { "minimum": 1 },
			"request": { "$ref": "#/types/get-request" },
			"response": { "$ref": "#/types/get-response" }
		}
	},

	"permissions": {
		"get": {
			"permission": "urn:AGL:permission::platform:monitor:get"
		},
		"set": {
			"permission": "urn:AGL:permission::platform:monitor:set"
		},
		"get-or-set": {
			"anyOf": [
				{ "$ref": "#/permissions/get" },
				{ "$ref": "#/permissions/set" }
			]
		}
	},

	"types": {
		"set-request": {
			"type": "object",
			"properties": {
				"verbosity": { "$ref": "#/types/set-verbosity" }
			}
		},
		"set-response": {
			"type": "object"
		},

		"set-verbosity": {
			"anyOf": [
				{ "$ref": "#/types/verbosity-map" },
				{ "$ref": "#/types/verbosity-level" }
			]
		},

		"get-request": {
			"type": "object",
			"properties": {
				"verbosity": { "$ref": "#/types/get-verbosity" },
				"apis": { "$ref": "#/types/get-apis" }
			}
		},
		"get-response": {
			"type": "object",
			"properties": {
				"verbosity": { "$ref": "#/types/verbosity-map" },
				"apis": { "type": "object" }
			}
		},

		"get-verbosity": {
			"anyOf": [
				{ "type": "boolean" },
				{ "type": "array", "items": { "type": "string" } },
				{ "type": "object" }
			]
		},
		"get-apis": {
			"anyOf": [
				{ "type": "boolean" },
				{ "type": "array", "items": { "type": "string" } },
				{ "type": "object" }
			]
		},

		"verbosity-map": {
			"type": "object",
			"patternProperties": { "^.*$": { "$ref": "#/types/verbosity-level" } }
		},
		"verbosity-level": {
			"enum": [ "debug", 3, "info", 2, "notice", "warning", 1, "error", 0 ]
		}


	},

	"meta-binding": {
		"prefix": "",
		"postfix": "_request_callback",
		"start": "start_binding",
		"onevent": null,
		"init": null,
		"scope": "extern"
	}
}