{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "endpoints/access-lists", "title": "Access Lists", "description": "Endpoints relating to Access Lists", "stability": "stable", "type": "object", "definitions": { "id": { "$ref": "../definitions.json#/definitions/id" }, "created_on": { "$ref": "../definitions.json#/definitions/created_on" }, "modified_on": { "$ref": "../definitions.json#/definitions/modified_on" }, "name": { "type": "string", "description": "Name of the Access List" }, "directive": { "type": "string", "enum": ["allow", "deny"] }, "address": { "oneOf": [ { "type": "string", "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(/([0-9]|[1-2][0-9]|3[0-2]))?$" }, { "type": "string", "pattern": "^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?$" }, { "type": "string", "pattern": "^all$" } ] }, "satisfy_any": { "type": "boolean" }, "meta": { "type": "object" } }, "properties": { "id": { "$ref": "#/definitions/id" }, "created_on": { "$ref": "#/definitions/created_on" }, "modified_on": { "$ref": "#/definitions/modified_on" }, "name": { "$ref": "#/definitions/name" }, "meta": { "$ref": "#/definitions/meta" } }, "links": [ { "title": "List", "description": "Returns a list of Access Lists", "href": "/nginx/access-lists", "access": "private", "method": "GET", "rel": "self", "http_header": { "$ref": "../examples.json#/definitions/auth_header" }, "targetSchema": { "type": "array", "items": { "$ref": "#/properties" } } }, { "title": "Create", "description": "Creates a new Access List", "href": "/nginx/access-list", "access": "private", "method": "POST", "rel": "create", "http_header": { "$ref": "../examples.json#/definitions/auth_header" }, "schema": { "type": "object", "additionalProperties": false, "required": ["name"], "properties": { "name": { "$ref": "#/definitions/name" }, "satisfy_any": { "$ref": "#/definitions/satisfy_any" }, "items": { "type": "array", "minItems": 0, "items": { "type": "object", "additionalProperties": false, "properties": { "username": { "type": "string", "minLength": 1 }, "password": { "type": "string", "minLength": 1 } } } }, "clients": { "type": "array", "minItems": 0, "items": { "type": "object", "additionalProperties": false, "properties": { "address": { "$ref": "#/definitions/address" }, "directive": { "$ref": "#/definitions/directive" } } } }, "meta": { "$ref": "#/definitions/meta" } } }, "targetSchema": { "properties": { "$ref": "#/properties" } } }, { "title": "Update", "description": "Updates a existing Access List", "href": "/nginx/access-list/{definitions.identity.example}", "access": "private", "method": "PUT", "rel": "update", "http_header": { "$ref": "../examples.json#/definitions/auth_header" }, "schema": { "type": "object", "additionalProperties": false, "properties": { "name": { "$ref": "#/definitions/name" }, "satisfy_any": { "$ref": "#/definitions/satisfy_any" }, "items": { "type": "array", "minItems": 0, "items": { "type": "object", "additionalProperties": false, "properties": { "username": { "type": "string", "minLength": 1 }, "password": { "type": "string", "minLength": 0 } } } }, "clients": { "type": "array", "minItems": 0, "items": { "type": "object", "additionalProperties": false, "properties": { "address": { "$ref": "#/definitions/address" }, "directive": { "$ref": "#/definitions/directive" } } } } } }, "targetSchema": { "properties": { "$ref": "#/properties" } } }, { "title": "Delete", "description": "Deletes a existing Access List", "href": "/nginx/access-list/{definitions.identity.example}", "access": "private", "method": "DELETE", "rel": "delete", "http_header": { "$ref": "../examples.json#/definitions/auth_header" }, "targetSchema": { "type": "boolean" } } ] }