{ "definitions": { "ballot": { "$ref": "file:/ballot-0.0.schema.json" }, "session-request": { "type": "object", "properties": { "election": { "type": "string", "format": "uri" }, "accessToken": { "type": "string" } }, "required": [ "election", "accessToken" ] }, "session-response": { "type": "object", "properties": { "sessionKey": { "type": "string" }, "ballot": { "type": "object", "properties": { "ballotId": { "type": "string" }, "uniquifiers": { "type": "array", "items": { "type": "string" } } }, "required": ["ballotId", "uniquifiers" ] } }, "required": [ "sessionKey", "ballot" ] }, "cast-request": { "type": "object", "properties": { "sessionKey": { "type": "string" }, "ballot": { "$ref": "#/definitions/ballot" } }, "required": [ "sessionKey", "ballot" ] }, "cast-response": { "type": "null" }, "returns-request": { "type": "object", "properties": { "election": { "type": "string", "format": "uri" } }, "required": [ "election" ] }, "returns-response": { "type": "object", "properties": { "ballotsIssued": { "type": "integer" }, "ballotsCast": { "type": "integer" }, "ballots": { "type": "array", "items": { "$ref": "#/definitions/ballot" } } }, "required": [ "ballotsIssued", "ballotsCast", "ballots" ] } }, "links": [ { "description": "Start a session", "href": "/session", "method": "POST", "rel": "create", "title": "Session", "schema": { "$ref": "#/definitions/session-request" }, "targetSchema": { "$ref": "#/definitions/session-response" } }, { "description": "Cast a ballot", "href": "/cast", "method": "POST", "rel": "create", "title": "Cast", "schema": { "$ref": "#/definitions/cast-request" }, "targetSchema": { "$ref": "#/definitions/cast-response" } }, { "description": "Get returns", "href": "/returns", "method": "GET", "rel": "list", "title": "Cast", "schema": { "$ref": "#/definitions/returns-request" }, "targetSchema": { "$ref": "#/definitions/returns-response" } } ] }