2017-12-21 09:02:37 +10:00

150 lines
3.0 KiB
JSON

{
"$schema": "http://json-schema.org/draft-06/schema#",
"id": "endpoints/access",
"title": "Access",
"description": "Endpoints relating to Access Lists",
"stability": "stable",
"type": "object",
"definitions": {
"_id": {
"type": "string",
"readonly": true
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"username",
"password"
],
"properties": {
"username": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"password": {
"type": "string",
"minLength": 0,
"maxLength": 50
},
"hint": {
"type": "string",
"minLength": 0,
"maxLength": 50
}
}
}
},
"hosts": {
"type": "array",
"items": {
"type": "object"
}
}
},
"links": [
{
"title": "List",
"description": "Returns a list of Access Lists",
"href": "/access",
"access": "public",
"method": "GET",
"rel": "self",
"targetSchema": {
"type": "array",
"items": {
"$ref": "#/properties"
}
}
},
{
"title": "Create",
"description": "Creates a new Access List",
"href": "/access",
"access": "public",
"method": "POST",
"rel": "create",
"schema": {
"type": "object",
"required": [
"name",
"items"
],
"properties": {
"name": {
"$ref": "#/definitions/name"
},
"items": {
"$ref": "#/definitions/items"
}
}
},
"targetSchema": {
"properties": {
"$ref": "#/properties"
}
}
},
{
"title": "Update",
"description": "Updates a Access List",
"href": "/hosts/{definitions.identity.example}",
"access": "public",
"method": "PUT",
"rel": "update",
"schema": {
"type": "object",
"required": [
"name",
"items"
],
"properties": {
"name": {
"$ref": "#/definitions/name"
},
"items": {
"$ref": "#/definitions/items"
}
}
},
"targetSchema": {
"properties": {
"$ref": "#/properties"
}
}
},
{
"title": "Delete",
"description": "Deletes a existing Access List",
"href": "/hosts/{definitions.identity.example}",
"access": "public",
"method": "DELETE",
"rel": "delete",
"targetSchema": {
"type": "boolean"
}
}
],
"properties": {
"_id": {
"$ref": "#/definitions/_id"
},
"name": {
"$ref": "#/definitions/name"
},
"items": {
"$ref": "#/definitions/items"
},
"hosts": {
"$ref": "#/definitions/hosts"
}
}
}