-var pmgapi = [
+var apiSchema = [
{
"children" : [
{
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Returns the rule database digest. This is used internally for cluster synchronization.",
"method" : "GET",
"name" : "ruledb_digest",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get common rule properties.",
"method" : "GET",
"name" : "config",
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Set rule properties.",
"method" : "PUT",
"name" : "update_config",
"typetext" : "<boolean>"
},
"direction" : {
- "description" : "Rule direction. Value `0` matches incomming mails, value `1` matches outgoing mails, and value `2` matches both directions.",
+ "description" : "Rule direction. Value `0` matches incoming mails, value `1` matches outgoing mails, and value `2` matches both directions.",
"maximum" : 2,
"minimum" : 0,
"optional" : 1,
{
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete group from 'from' list.",
"method" : "DELETE",
"name" : "delete_from_group",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get 'from' group list.",
"method" : "GET",
"name" : "from",
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Add group to 'from' list.",
"method" : "POST",
"name" : "add_from_group",
{
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete group from 'to' list.",
"method" : "DELETE",
"name" : "delete_to_group",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get 'to' group list.",
"method" : "GET",
"name" : "to",
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Add group to 'to' list.",
"method" : "POST",
"name" : "add_to_group",
{
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete group from 'when' list.",
"method" : "DELETE",
"name" : "delete_when_group",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get 'when' group list.",
"method" : "GET",
"name" : "when",
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Add group to 'when' list.",
"method" : "POST",
"name" : "add_when_group",
{
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete group from 'what' list.",
"method" : "DELETE",
"name" : "delete_what_group",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get 'what' group list.",
"method" : "GET",
"name" : "what",
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Add group to 'what' list.",
"method" : "POST",
"name" : "add_what_group",
{
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete group from 'action' list.",
"method" : "DELETE",
"name" : "delete_action_group",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get 'action' group list.",
"method" : "GET",
"name" : "action",
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Add group to 'action' list.",
"method" : "POST",
"name" : "add_action_group",
],
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete rule.",
"method" : "DELETE",
"name" : "delete_rule",
}
},
"GET" : {
+ "allowtoken" : 1,
"description" : "Directory index.",
"method" : "GET",
"name" : "index",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get list of rules.",
"method" : "GET",
"name" : "list_rules",
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Create new rule.",
"method" : "POST",
"name" : "create_rule",
"typetext" : "<boolean>"
},
"direction" : {
- "description" : "Rule direction. Value `0` matches incomming mails, value `1` matches outgoing mails, and value `2` matches both directions.",
+ "description" : "Rule direction. Value `0` matches incoming mails, value `1` matches outgoing mails, and value `2` matches both directions.",
"maximum" : 2,
"minimum" : 0,
"optional" : 1,
{
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete 'actions' object.",
"method" : "DELETE",
"name" : "delete_action",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "List 'actions' objects.",
"method" : "GET",
"name" : "list_actions",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'BCC' object settings.",
"method" : "GET",
"name" : "read_bcc",
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'BCC' object.",
"method" : "PUT",
"name" : "update_bcc",
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Create 'BCC' object.",
"method" : "POST",
"name" : "bcc",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Header Attribute' object settings.",
"method" : "GET",
"name" : "read_field",
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Header Attribute' object.",
"method" : "PUT",
"name" : "update_field",
"value" : {
"description" : "The Value",
"maxLength" : 1024,
- "pattern" : "[0-9a-zA-Z\\/\\\\[\\]\\+\\-\\.\\*\\_]+",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Create 'Header Attribute' object.",
"method" : "POST",
"name" : "field",
"value" : {
"description" : "The Value",
"maxLength" : 1024,
- "pattern" : "[0-9a-zA-Z\\/\\\\[\\]\\+\\-\\.\\*\\_]+",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Notification' object settings.",
"method" : "GET",
"name" : "read_notification",
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Notification' object.",
"method" : "PUT",
"name" : "update_notification",
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Create 'Notification' object.",
"method" : "POST",
"name" : "notification",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Disclaimer' object settings.",
"method" : "GET",
"name" : "read_disclaimer",
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Disclaimer' object.",
"method" : "PUT",
"name" : "update_disclaimer",
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Create 'Disclaimer' object.",
"method" : "POST",
"name" : "disclaimer",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Remove attachments' object settings.",
"method" : "GET",
"name" : "read_removeattachments",
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Remove attachments' object.",
"method" : "PUT",
"name" : "update_removeattachments",
"type" : "string",
"typetext" : "<string>"
},
+ "quarantine" : {
+ "default" : 0,
+ "description" : "Copy original mail to attachment Quarantine.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"text" : {
"description" : "The replacement text.",
"maxLength" : 2048,
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Create 'Remove attachments' object.",
"method" : "POST",
"name" : "removeattachments",
"type" : "string",
"typetext" : "<string>"
},
+ "quarantine" : {
+ "default" : 0,
+ "description" : "Copy original mail to attachment Quarantine.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"text" : {
"description" : "The replacement text.",
"maxLength" : 2048,
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Directory index.",
"method" : "GET",
"name" : "index",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get 'what' group properties",
"method" : "GET",
"name" : "get_config",
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Modify 'what' group properties",
"method" : "PUT",
"name" : "set_config",
{
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Remove an object from the 'what' group.",
"method" : "DELETE",
"name" : "delete_object",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "List 'what' group objects.",
"method" : "GET",
"name" : "objects",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'ContentType Filter' object settings.",
"method" : "GET",
"name" : "read_contenttype",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'ContentType Filter' object.",
"method" : "PUT",
"name" : "update_contenttype",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'ContentType Filter' object.",
"method" : "POST",
"name" : "contenttype",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Match Field' object settings.",
"method" : "GET",
"name" : "read_matchfield",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Match Field' object.",
"method" : "PUT",
"name" : "update_matchfield",
"value" : {
"description" : "The Value",
"maxLength" : 1024,
- "pattern" : "[0-9a-zA-Z\\/\\\\[\\]\\+\\-\\.\\*\\_]+",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'Match Field' object.",
"method" : "POST",
"name" : "matchfield",
"value" : {
"description" : "The Value",
"maxLength" : 1024,
- "pattern" : "[0-9a-zA-Z\\/\\\\[\\]\\+\\-\\.\\*\\_]+",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Spam Filter' object settings.",
"method" : "GET",
"name" : "read_spamfilter",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Spam Filter' object.",
"method" : "PUT",
"name" : "update_spamfilter",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'Spam Filter' object.",
"method" : "POST",
"name" : "spamfilter",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Archive Filter' object settings.",
"method" : "GET",
"name" : "read_archivefilter",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Archive Filter' object.",
"method" : "PUT",
"name" : "update_archivefilter",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'Archive Filter' object.",
"method" : "POST",
"name" : "archivefilter",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Match Filename' object settings.",
"method" : "GET",
"name" : "read_filenamefilter",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Match Filename' object.",
"method" : "PUT",
"name" : "update_filenamefilter",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'Match Filename' object.",
"method" : "POST",
"name" : "filenamefilter",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Virus Filter' object settings.",
"method" : "GET",
"name" : "read_virusfilter",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Virus Filter' object.",
"method" : "PUT",
"name" : "update_virusfilter",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'Virus Filter' object.",
"method" : "POST",
"name" : "virusfilter",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
"leaf" : 0,
"path" : "/config/ruledb/what/{ogroup}/virusfilter",
"text" : "virusfilter"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read 'Match Archive Filename' object settings.",
+ "method" : "GET",
+ "name" : "read_archivefilenamefilter",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "Object ID.",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "ogroup" : {
+ "description" : "Object Groups ID.",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "proxyto" : "master",
+ "returns" : {
+ "properties" : {
+ "id" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update 'Match Archive Filename' object.",
+ "method" : "PUT",
+ "name" : "update_archivefilenamefilter",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "filename" : {
+ "description" : "Filename filter",
+ "maxLength" : 1024,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "id" : {
+ "description" : "Object ID.",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "ogroup" : {
+ "description" : "Object Groups ID.",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/ruledb/what/{ogroup}/archivefilenamefilter/{id}",
+ "text" : "{id}"
+ }
+ ],
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Add 'Match Archive Filename' object.",
+ "method" : "POST",
+ "name" : "archivefilenamefilter",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "filename" : {
+ "description" : "Filename filter",
+ "maxLength" : 1024,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ogroup" : {
+ "description" : "Object Groups ID.",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "description" : "The object ID.",
+ "type" : "integer"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/config/ruledb/what/{ogroup}/archivefilenamefilter",
+ "text" : "archivefilenamefilter"
}
],
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete a 'what' group.",
"method" : "DELETE",
"name" : "delete_{$oclass}_group",
}
},
"GET" : {
+ "allowtoken" : 1,
"description" : "Directory index.",
"method" : "GET",
"name" : "index",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get list of 'what' groups.",
"method" : "GET",
"name" : "list_what_groups",
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Create a new 'what' group.",
"method" : "POST",
"name" : "create_what_group",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get 'when' group properties",
"method" : "GET",
"name" : "get_config",
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Modify 'when' group properties",
"method" : "PUT",
"name" : "set_config",
{
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Remove an object from the 'when' group.",
"method" : "DELETE",
"name" : "delete_object",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "List 'when' group objects.",
"method" : "GET",
"name" : "objects",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'TimeFrame' object settings.",
"method" : "GET",
"name" : "read_timeframe",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'TimeFrame' object.",
"method" : "PUT",
"name" : "update_timeframe",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'TimeFrame' object.",
"method" : "POST",
"name" : "timeframe",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete a 'when' group.",
"method" : "DELETE",
"name" : "delete_{$oclass}_group",
}
},
"GET" : {
+ "allowtoken" : 1,
"description" : "Directory index.",
"method" : "GET",
"name" : "index",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get list of 'when' groups.",
"method" : "GET",
"name" : "list_when_groups",
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Create a new 'when' group.",
"method" : "POST",
"name" : "create_when_group",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get 'who' group properties",
"method" : "GET",
"name" : "get_config",
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Modify 'who' group properties",
"method" : "PUT",
"name" : "set_config",
{
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Remove an object from the 'who' group.",
"method" : "DELETE",
"name" : "delete_object",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "List 'who' group objects.",
"method" : "GET",
"name" : "objects",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Mail address' object settings.",
"method" : "GET",
"name" : "read_email",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Mail address' object.",
"method" : "PUT",
"name" : "update_email",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'Mail address' object.",
"method" : "POST",
"name" : "email",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Domain' object settings.",
"method" : "GET",
"name" : "read_domain",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Domain' object.",
"method" : "PUT",
"name" : "update_domain",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'Domain' object.",
"method" : "POST",
"name" : "domain",
}
}
},
- "protected" : 1,
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
"proxyto" : "master",
"returns" : {
"description" : "The object ID.",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Regular Expression' object settings.",
"method" : "GET",
"name" : "read_regex",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Regular Expression' object.",
"method" : "PUT",
"name" : "update_regex",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'Regular Expression' object.",
"method" : "POST",
"name" : "regex",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'IP Address' object settings.",
"method" : "GET",
"name" : "read_ip",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'IP Address' object.",
"method" : "PUT",
"name" : "update_ip",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'IP Address' object.",
"method" : "POST",
"name" : "ip",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'IP Network' object settings.",
"method" : "GET",
"name" : "read_network",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'IP Network' object.",
"method" : "PUT",
"name" : "update_network",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'IP Network' object.",
"method" : "POST",
"name" : "network",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'LDAP Group' object settings.",
"method" : "GET",
"name" : "read_ldap",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'LDAP Group' object.",
"method" : "PUT",
"name" : "update_ldap",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'LDAP Group' object.",
"method" : "POST",
"name" : "ldap",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'LDAP User' object settings.",
"method" : "GET",
"name" : "read_ldapuser",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'LDAP User' object.",
"method" : "PUT",
"name" : "update_ldapuser",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'LDAP User' object.",
"method" : "POST",
"name" : "ldapuser",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete a 'who' group.",
"method" : "DELETE",
"name" : "delete_{$oclass}_group",
}
},
"GET" : {
+ "allowtoken" : 1,
"description" : "Directory index.",
"method" : "GET",
"name" : "index",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get list of 'who' groups.",
"method" : "GET",
"name" : "list_who_groups",
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Create a new 'who' group.",
"method" : "POST",
"name" : "create_who_group",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Directory index.",
"method" : "GET",
"name" : "index",
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Reset PMG rule database back to factory defaults.",
"method" : "POST",
"name" : "reset_ruledb",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"returns" : {
"type" : "null"
{
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Remove an object from the SMTP whitelist.",
"method" : "DELETE",
"name" : "delete_object",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get list of all SMTP whitelist entries.",
"method" : "GET",
"name" : "objects",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Mail address' object settings.",
"method" : "GET",
"name" : "read_email",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Mail address' object.",
"method" : "PUT",
"name" : "update_email",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'Mail address' object.",
"method" : "POST",
"name" : "email",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Mail address' object settings.",
"method" : "GET",
"name" : "read_receiver",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Mail address' object.",
"method" : "PUT",
"name" : "update_receiver",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'Mail address' object.",
"method" : "POST",
"name" : "receiver",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Domain' object settings.",
"method" : "GET",
"name" : "read_domain",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Domain' object.",
"method" : "PUT",
"name" : "update_domain",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'Domain' object.",
"method" : "POST",
"name" : "domain",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Domain' object settings.",
"method" : "GET",
"name" : "read_receiver_domain",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Domain' object.",
"method" : "PUT",
"name" : "update_receiver_domain",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'Domain' object.",
"method" : "POST",
"name" : "receiver_domain",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Regular Expression' object settings.",
"method" : "GET",
"name" : "read_regex",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Regular Expression' object.",
"method" : "PUT",
"name" : "update_regex",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'Regular Expression' object.",
"method" : "POST",
"name" : "regex",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'Regular Expression' object settings.",
"method" : "GET",
"name" : "read_receiver_regex",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'Regular Expression' object.",
"method" : "PUT",
"name" : "update_receiver_regex",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'Regular Expression' object.",
"method" : "POST",
"name" : "receiver_regex",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'IP Address' object settings.",
"method" : "GET",
"name" : "read_ip",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'IP Address' object.",
"method" : "PUT",
"name" : "update_ip",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'IP Address' object.",
"method" : "POST",
"name" : "ip",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read 'IP Network' object settings.",
"method" : "GET",
"name" : "read_network",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"proxyto" : "master",
"returns" : {
"properties" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update 'IP Network' object.",
"method" : "PUT",
"name" : "update_network",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Add 'IP Network' object.",
"method" : "POST",
"name" : "network",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Directory index.",
"method" : "GET",
"name" : "index",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get LDAP profile configuration.",
"method" : "GET",
"name" : "read_config",
},
"permissions" : {
"check" : [
- "admin"
+ "admin",
+ "audit"
]
},
"proxyto" : "master",
"returns" : {}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update LDAP profile settings.",
"method" : "PUT",
"name" : "update_config",
"accountattr" : {
"default" : "sAMAccountName, uid",
"description" : "Account attribute name name.",
- "format" : "string-list",
+ "format" : "ldap-simple-attr-list",
"optional" : 1,
- "pattern" : "[a-zA-Z0-9]+",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
"basedn" : {
"description" : "Base domain name.",
"type" : "string",
"typetext" : "<string>"
},
+ "cafile" : {
+ "description" : "Path to CA file. Only useful with option 'verify'",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"comment" : {
"description" : "Description.",
"maxLength" : 4096,
"groupclass" : {
"default" : "group, univentionGroup, ipausergroup",
"description" : "List of objectclasses for groups.",
- "format" : "string-list",
+ "format" : "ldap-simple-attr-list",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
"mailattr" : {
- "default" : "mail, userPrincipalName, proxyAddresses, othermailbox",
+ "default" : "mail, userPrincipalName, proxyAddresses, othermailbox, mailAlternativeAddress",
"description" : "List of mail attribute names.",
- "format" : "string-list",
+ "format" : "ldap-simple-attr-list",
"optional" : 1,
- "pattern" : "[a-zA-Z0-9]+",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
"mode" : {
"default" : "ldap",
- "description" : "LDAP protocol mode ('ldap' or 'ldaps').",
+ "description" : "LDAP protocol mode ('ldap', 'ldaps' or 'ldap+starttls').",
"enum" : [
"ldap",
- "ldaps"
+ "ldaps",
+ "ldap+starttls"
],
"optional" : 1,
"type" : "string"
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
+ },
+ "verify" : {
+ "default" : 0,
+ "description" : "Verify server certificate. Only useful with ldaps or ldap+starttls.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
},
"type" : "object"
{
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Synchronice LDAP users to local database.",
"method" : "POST",
"name" : "sync_profile",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get all email addresses for the specified user.",
"method" : "GET",
"name" : "address_list",
"properties" : {
"email" : {
"description" : "Email address.",
- "format" : "email",
- "type" : "string",
- "typetext" : "<string>"
+ "maxLength" : 512,
+ "minLength" : 3,
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+ "type" : "string"
},
"profile" : {
"description" : "Profile ID.",
},
"permissions" : {
"check" : [
- "admin"
+ "admin",
+ "audit"
]
},
"protected" : 1,
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "List LDAP users.",
"method" : "GET",
"name" : "profile_list_users",
},
"permissions" : {
"check" : [
- "admin"
+ "admin",
+ "audit"
]
},
"protected" : 1,
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "List LDAP group members.",
"method" : "GET",
"name" : "profile_list_group_members",
},
"permissions" : {
"check" : [
- "admin"
+ "admin",
+ "audit"
]
},
"protected" : 1,
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "List LDAP groups.",
"method" : "GET",
"name" : "profile_list_groups",
},
"permissions" : {
"check" : [
- "admin"
+ "admin",
+ "audit"
]
},
"protected" : 1,
],
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete an LDAP profile",
"method" : "DELETE",
"name" : "delete",
}
},
"GET" : {
+ "allowtoken" : 1,
"description" : "Directory index",
"method" : "GET",
"name" : "profile_index",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "List configured LDAP profiles.",
"method" : "GET",
"name" : "index",
},
"permissions" : {
"check" : [
- "admin"
+ "admin",
+ "audit"
]
},
"proxyto" : "master",
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Add LDAP profile.",
"method" : "POST",
"name" : "create",
"accountattr" : {
"default" : "sAMAccountName, uid",
"description" : "Account attribute name name.",
- "format" : "string-list",
+ "format" : "ldap-simple-attr-list",
"optional" : 1,
- "pattern" : "[a-zA-Z0-9]+",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
"basedn" : {
"description" : "Base domain name.",
"type" : "string",
"typetext" : "<string>"
},
+ "cafile" : {
+ "description" : "Path to CA file. Only useful with option 'verify'",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"comment" : {
"description" : "Description.",
"maxLength" : 4096,
"groupclass" : {
"default" : "group, univentionGroup, ipausergroup",
"description" : "List of objectclasses for groups.",
- "format" : "string-list",
+ "format" : "ldap-simple-attr-list",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
"mailattr" : {
- "default" : "mail, userPrincipalName, proxyAddresses, othermailbox",
+ "default" : "mail, userPrincipalName, proxyAddresses, othermailbox, mailAlternativeAddress",
"description" : "List of mail attribute names.",
- "format" : "string-list",
+ "format" : "ldap-simple-attr-list",
"optional" : 1,
- "pattern" : "[a-zA-Z0-9]+",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
"mode" : {
"default" : "ldap",
- "description" : "LDAP protocol mode ('ldap' or 'ldaps').",
+ "description" : "LDAP protocol mode ('ldap', 'ldaps' or 'ldap+starttls').",
"enum" : [
"ldap",
- "ldaps"
+ "ldaps",
+ "ldap+starttls"
],
"optional" : 1,
"type" : "string"
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
+ },
+ "verify" : {
+ "default" : 0,
+ "description" : "Verify server certificate. Only useful with ldaps or ldap+starttls.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
},
"type" : "object"
{
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete a relay domain",
"method" : "DELETE",
"name" : "delete",
"properties" : {
"domain" : {
"description" : "Domain name.",
- "format" : "dns-name",
+ "format" : "transport-domain",
"type" : "string",
"typetext" : "<string>"
}
}
},
"GET" : {
+ "allowtoken" : 1,
"description" : "Read Domain data (comment).",
"method" : "GET",
"name" : "read",
"properties" : {
"domain" : {
"description" : "Domain name.",
- "format" : "dns-name",
+ "format" : "transport-domain",
"type" : "string",
"typetext" : "<string>"
}
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update relay domain data (comment).",
"method" : "PUT",
"name" : "write",
},
"domain" : {
"description" : "Domain name.",
- "format" : "dns-name",
+ "format" : "transport-domain",
"type" : "string",
"typetext" : "<string>"
}
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "List relay domains.",
"method" : "GET",
"name" : "index",
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Add relay domain.",
"method" : "POST",
"name" : "create",
},
"domain" : {
"description" : "Domain name.",
- "format" : "dns-name",
+ "format" : "transport-domain",
"type" : "string",
"typetext" : "<string>"
}
{
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete a fetchmail configuration entry.",
"method" : "DELETE",
"name" : "delete",
}
},
"GET" : {
+ "allowtoken" : 1,
"description" : "Read fetchmail user configuration.",
"method" : "GET",
"name" : "read",
"maxLength" : 512,
"minLength" : 3,
"optional" : 1,
- "pattern" : "(?:|[^\\s\\/\\@]+\\@[^\\s\\/\\@]+)",
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
"type" : "string"
},
"user" : {
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update fetchmail user configuration.",
"method" : "PUT",
"name" : "write",
"maxLength" : 512,
"minLength" : 3,
"optional" : 1,
- "pattern" : "(?:|[^\\s\\/\\@]+\\@[^\\s\\/\\@]+)",
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
"type" : "string"
},
"user" : {
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "List fetchmail users.",
"method" : "GET",
"name" : "index",
"maxLength" : 512,
"minLength" : 3,
"optional" : 1,
- "pattern" : "(?:|[^\\s\\/\\@]+\\@[^\\s\\/\\@]+)",
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
"type" : "string"
},
"user" : {
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Create fetchmail user configuration.",
"method" : "POST",
"name" : "create",
"description" : "The target email address (where to deliver fetched mails).",
"maxLength" : 512,
"minLength" : 3,
- "pattern" : "(?:|[^\\s\\/\\@]+\\@[^\\s\\/\\@]+)",
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
"type" : "string"
},
"user" : {
{
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete a transport map entry",
"method" : "DELETE",
"name" : "delete",
"properties" : {
"domain" : {
"description" : "Domain name.",
- "format" : "transport-domain",
+ "format" : "transport-domain-or-email",
"type" : "string",
"typetext" : "<string>"
}
}
},
"GET" : {
+ "allowtoken" : 1,
"description" : "Read transport map entry.",
"method" : "GET",
"name" : "read",
"properties" : {
"domain" : {
"description" : "Domain name.",
- "format" : "transport-domain",
+ "format" : "transport-domain-or-email",
"type" : "string",
"typetext" : "<string>"
}
"port" : {
"type" : "integer"
},
+ "protocol" : {
+ "type" : "string"
+ },
"use_mx" : {
"type" : "boolean"
}
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update transport map entry.",
"method" : "PUT",
"name" : "write",
},
"domain" : {
"description" : "Domain name.",
- "format" : "transport-domain",
+ "format" : "transport-domain-or-email",
"type" : "string",
"typetext" : "<string>"
},
"host" : {
"description" : "Target host (name or IP address).",
- "format" : "address",
+ "format" : "transport-address",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
"port" : {
- "description" : "SMTP port.",
+ "description" : "Transport port.",
"maximum" : 65535,
"minimum" : 1,
"optional" : 1,
"type" : "integer",
"typetext" : "<integer> (1 - 65535)"
},
+ "protocol" : {
+ "default" : "smtp",
+ "description" : "Transport protocol.",
+ "enum" : [
+ "smtp",
+ "lmtp"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
"use_mx" : {
- "description" : "Enable MX lookups.",
+ "description" : "Enable MX lookups (SMTP).",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "List transport map entries.",
"method" : "GET",
"name" : "index",
"port" : {
"type" : "integer"
},
+ "protocol" : {
+ "type" : "string"
+ },
"use_mx" : {
"type" : "boolean"
}
},
"links" : [
{
- "href" : "{id}",
+ "href" : "{domain}",
"rel" : "child"
}
],
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Add transport map entry.",
"method" : "POST",
"name" : "create",
},
"domain" : {
"description" : "Domain name.",
- "format" : "transport-domain",
+ "format" : "transport-domain-or-email",
"type" : "string",
"typetext" : "<string>"
},
"host" : {
"description" : "Target host (name or IP address).",
- "format" : "address",
+ "format" : "transport-address",
"type" : "string",
"typetext" : "<string>"
},
"port" : {
"default" : 25,
- "description" : "SMTP port.",
+ "description" : "Transport port.",
"maximum" : 65535,
"minimum" : 1,
"optional" : 1,
"type" : "integer",
"typetext" : "<integer> (1 - 65535)"
},
+ "protocol" : {
+ "default" : "smtp",
+ "description" : "Transport protocol.",
+ "enum" : [
+ "smtp",
+ "lmtp"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
"use_mx" : {
"default" : 1,
- "description" : "Enable MX lookups.",
+ "description" : "Enable MX lookups (SMTP).",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
{
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete a truster network",
"method" : "DELETE",
"name" : "delete",
}
},
"GET" : {
+ "allowtoken" : 1,
"description" : "Read trusted network data (comment).",
"method" : "GET",
"name" : "read",
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update trusted data (comment).",
"method" : "PUT",
"name" : "write",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "List of trusted networks from where SMTP clients are allowed to relay mail through Proxmox Mail Gateway.",
"method" : "GET",
"name" : "index",
},
"links" : [
{
- "href" : "{cide}",
+ "href" : "{cidr}",
"rel" : "child"
}
],
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Add a trusted network.",
"method" : "POST",
"name" : "create",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Cluster node index.",
"method" : "GET",
"name" : "nodes",
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Add an node to the cluster config.",
"method" : "POST",
"name" : "add_node",
"hostrsapubkey" : {
"description" : "Public SSH RSA key for the host.",
"optional" : 0,
- "pattern" : "^[A-Za-z0-9\\.\\/\\+]{200,}$",
+ "pattern" : "^[A-Za-z0-9\\.\\/\\+=]{200,}$",
"type" : "string"
},
"ip" : {
"rootrsapubkey" : {
"description" : "Public SSH RSA key for the root user.",
"optional" : 0,
- "pattern" : "^[A-Za-z0-9\\.\\/\\+]{200,}$",
+ "pattern" : "^[A-Za-z0-9\\.\\/\\+=]{200,}$",
"type" : "string"
}
},
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Cluster node status.",
"method" : "GET",
"name" : "status",
{
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Create initial cluster config with current node as master.",
"method" : "POST",
"name" : "create",
{
"info" : {
"POST" : {
+ "allowtoken" : 1,
"description" : "Join local node to an existing cluster.",
"method" : "POST",
"name" : "join",
"leaf" : 1,
"path" : "/config/cluster/join",
"text" : "join"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Update API certificate fingerprints (by fetching it via ssh).",
+ "method" : "POST",
+ "name" : "update_fingerprints",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/cluster/update-fingerprints",
+ "text" : "update-fingerprints"
}
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Directory index.",
"method" : "GET",
"name" : "index",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get Mime Types List",
"method" : "GET",
"name" : "index",
"text" : "mimetypes"
},
{
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete a tls_policy entry",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "destination" : {
+ "description" : "Destination (Domain or next-hop).",
+ "format" : "transport-domain-or-nexthop",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read tls_policy entry.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "destination" : {
+ "description" : "Destination (Domain or next-hop).",
+ "format" : "transport-domain-or-nexthop",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "proxyto" : "master",
+ "returns" : {
+ "properties" : {
+ "destination" : {
+ "format" : "transport-domain-or-nexthop",
+ "type" : "string"
+ },
+ "policy" : {
+ "format" : "tls-policy",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update tls_policy entry.",
+ "method" : "PUT",
+ "name" : "write",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "destination" : {
+ "description" : "Destination (Domain or next-hop).",
+ "format" : "transport-domain-or-nexthop",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "policy" : {
+ "description" : "TLS policy",
+ "format" : "tls-policy-strict",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/tlspolicy/{destination}",
+ "text" : "{destination}"
+ }
+ ],
"info" : {
"GET" : {
- "description" : "Read admin configuration properties.",
+ "allowtoken" : 1,
+ "description" : "List tls_policy entries.",
"method" : "GET",
- "name" : "read_admin_section",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0
},
},
"proxyto" : "master",
"returns" : {
- "type" : "object"
+ "items" : {
+ "properties" : {
+ "destination" : {
+ "format" : "transport-domain-or-nexthop",
+ "type" : "string"
+ },
+ "policy" : {
+ "format" : "tls-policy",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{destination}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
},
- "PUT" : {
- "description" : "Update admin configuration properties.",
- "method" : "PUT",
- "name" : "update_admin_section",
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Add tls_policy entry.",
+ "method" : "POST",
+ "name" : "create",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "advfilter" : {
- "default" : 1,
- "description" : "Use advanced filters for statistic.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "dailyreport" : {
- "default" : 1,
- "description" : "Send daily reports.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
- "maxLength" : 4096,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "demo" : {
- "default" : 0,
- "description" : "Demo mode - do not start SMTP filter.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
+ "destination" : {
+ "description" : "Destination (Domain or next-hop).",
+ "format" : "transport-domain-or-nexthop",
"type" : "string",
"typetext" : "<string>"
},
- "email" : {
- "default" : "admin@domain.tld",
- "description" : "Administrator E-Mail address.",
- "format" : "email",
- "optional" : 1,
+ "policy" : {
+ "description" : "TLS policy",
+ "format" : "tls-policy-strict",
"type" : "string",
"typetext" : "<string>"
- },
- "http_proxy" : {
- "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
- "optional" : 1,
- "pattern" : "http://.*",
- "type" : "string"
- },
- "statlifetime" : {
- "default" : 7,
- "description" : "User Statistics Lifetime (days)",
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - N)"
}
- },
- "type" : "object"
+ }
},
"permissions" : {
"check" : [
}
}
},
- "leaf" : 1,
- "path" : "/config/admin",
- "text" : "admin"
+ "leaf" : 0,
+ "path" : "/config/tlspolicy",
+ "text" : "tlspolicy"
},
{
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete a tls_inbound_domains entry",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "domain" : {
+ "description" : "Domain which should be removed from tls_inbound_domains",
+ "format" : "transport-domain",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/tls-inbound-domains/{domain}",
+ "text" : "{domain}"
+ }
+ ],
"info" : {
"GET" : {
- "description" : "Read clamav configuration properties.",
+ "allowtoken" : 1,
+ "description" : "List tls_inbound_domains entries.",
"method" : "GET",
- "name" : "read_clamav_section",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0
},
},
"proxyto" : "master",
"returns" : {
- "type" : "object"
+ "description" : "List of domains for which TLS will be enforced on incoming connections",
+ "items" : {
+ "format" : "transport-domain",
+ "type" : "string"
+ },
+ "links" : [
+ {
+ "href" : "{domain}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
},
- "PUT" : {
- "description" : "Update clamav configuration properties.",
- "method" : "PUT",
- "name" : "update_clamav_section",
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Add new tls_inbound_domains entry.",
+ "method" : "POST",
+ "name" : "create",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "archiveblockencrypted" : {
- "default" : 0,
- "description" : "Wether to block encrypted archives. Mark encrypted archives as viruses.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "archivemaxfiles" : {
- "default" : 1000,
- "description" : "Number of files to be scanned within an archive, a document, or any other kind of container. Warning: disabling this limit or setting it too high may result in severe damage to the system.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "archivemaxrec" : {
- "default" : 5,
- "description" : "Nested archives are scanned recursively, e.g. if a ZIP archive contains a TAR file, all files within it will also be scanned. This options specifies how deeply the process should be continued. Warning: setting this limit too high may result in severe damage to the system.",
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - N)"
- },
- "archivemaxsize" : {
- "default" : 25000000,
- "description" : "Files larger than this limit won't be scanned.",
- "minimum" : 1000000,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1000000 - N)"
- },
- "dbmirror" : {
- "default" : "database.clamav.net",
- "description" : "ClamAV database mirror server.",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
- "maxLength" : 4096,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
+ "domain" : {
+ "description" : "Domain for which TLS should be enforced on incoming connections",
+ "format" : "transport-domain",
"type" : "string",
"typetext" : "<string>"
- },
- "maxcccount" : {
- "default" : 0,
- "description" : "This option sets the lowest number of Credit Card or Social Security numbers found in a file to generate a detect.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "maxscansize" : {
- "default" : 100000000,
- "description" : "Sets the maximum amount of data to be scanned for each input file.",
- "minimum" : 1000000,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1000000 - N)"
- },
- "safebrowsing" : {
- "default" : 1,
- "description" : "Enables support for Google Safe Browsing.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
}
- },
- "type" : "object"
+ }
},
"permissions" : {
"check" : [
}
}
},
- "leaf" : 1,
- "path" : "/config/clamav",
- "text" : "clamav"
+ "leaf" : 0,
+ "path" : "/config/tls-inbound-domains",
+ "text" : "tls-inbound-domains"
},
{
- "info" : {
- "GET" : {
- "description" : "Read mail configuration properties.",
- "method" : "GET",
- "name" : "read_mail_section",
- "parameters" : {
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "admin",
- "audit"
- ]
- },
- "proxyto" : "master",
- "returns" : {
- "type" : "object"
- }
- },
- "PUT" : {
- "description" : "Update mail configuration properties.",
- "method" : "PUT",
- "name" : "update_mail_section",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "banner" : {
- "default" : "ESMTP Proxmox",
- "description" : "ESMTP banner.",
- "maxLength" : 1024,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "conn_count_limit" : {
- "default" : 50,
- "description" : "How many simultaneous connections any client is allowed to make to this service. To disable this feature, specify a limit of 0.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "conn_rate_limit" : {
- "default" : 0,
- "description" : "The maximal number of connection attempts any client is allowed to make to this service per minute. To disable this feature, specify a limit of 0.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete a DKIM-sign domain",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "domain" : {
+ "description" : "Domain name.",
+ "format" : "transport-domain",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read Domain data (comment).",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "domain" : {
+ "description" : "Domain name.",
+ "format" : "transport-domain",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "proxyto" : "master",
+ "returns" : {
+ "properties" : {
+ "comment" : {
+ "type" : "string"
+ },
+ "domain" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update DKIM-sign domain data (comment).",
+ "method" : "PUT",
+ "name" : "write",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Comment.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "domain" : {
+ "description" : "Domain name.",
+ "format" : "transport-domain",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
},
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
- "maxLength" : 4096,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "leaf" : 1,
+ "path" : "/config/dkim/domains/{domain}",
+ "text" : "{domain}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List DKIM-sign domains.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
},
- "dnsbl_sites" : {
- "description" : "Optional list of DNS white/blacklist domains (see postscreen_dnsbl_sites parameter).",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "dwarning" : {
- "default" : 4,
- "description" : "SMTP delay warning time (in hours).",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
+ "proxyto" : "master",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "type" : "string"
+ },
+ "domain" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{domain}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Add DKIM-sign domain.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "domain" : {
+ "description" : "Domain name.",
+ "format" : "transport-domain",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "ext_port" : {
- "default" : 26,
- "description" : "SMTP port number for incoming mail (untrusted). This must be a different number than 'int_port'.",
- "maximum" : 65535,
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - 65535)"
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
},
- "greylist" : {
- "default" : 1,
- "description" : "Use Greylisting.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/config/dkim/domains",
+ "text" : "domains"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get the public key for the configured selector, prepared as DKIM TXT record",
+ "method" : "GET",
+ "name" : "get_selector_info",
+ "parameters" : {
+ "additionalProperties" : 0
},
- "helotests" : {
- "default" : 0,
- "description" : "Use SMTP HELO tests.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
},
- "hide_received" : {
- "default" : 0,
- "description" : "Hide received header in outgoing mails.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "properties" : {
+ "keysize" : {
+ "minimum" : 1024,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "record" : {
+ "format" : "pmg-dkim-record",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "selector" : {
+ "format" : "dns-name",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Generate a new private key for selector. All future mail will be signed with the new key!",
+ "method" : "POST",
+ "name" : "set_selector",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "description" : "Overwrite existing key",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "keysize" : {
+ "description" : "Number of bits for the RSA-Key",
+ "minimum" : 1024,
+ "type" : "integer",
+ "typetext" : "<integer> (1024 - N)"
+ },
+ "selector" : {
+ "description" : "DKIM Selector",
+ "format" : "dns-name",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "int_port" : {
- "default" : 25,
- "description" : "SMTP port number for outgoing mail (trusted).",
- "maximum" : 65535,
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - 65535)"
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
},
- "max_filters" : {
- "default" : 15,
- "description" : "Maximum number of pmg-smtp-filter processes.",
- "maximum" : 40,
- "minimum" : 3,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (3 - 40)"
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/dkim/selector",
+ "text" : "selector"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get a list of all existing selectors",
+ "method" : "GET",
+ "name" : "get_selector_list",
+ "parameters" : {
+ "additionalProperties" : 0
},
- "max_policy" : {
- "default" : 5,
- "description" : "Maximum number of pmgpolicy processes.",
- "maximum" : 10,
- "minimum" : 2,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (2 - 10)"
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
},
- "max_smtpd_in" : {
- "default" : 99,
- "description" : "Maximum number of SMTP daemon processes (in).",
- "maximum" : 100,
- "minimum" : 3,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (3 - 100)"
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "selector" : {
+ "format" : "dns-name",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{selector}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/dkim/selectors",
+ "text" : "selectors"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "section" : {
+ "type" : "string"
+ }
},
- "max_smtpd_out" : {
- "default" : 99,
- "description" : "Maximum number of SMTP daemon processes (out).",
- "maximum" : 100,
- "minimum" : 3,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (3 - 100)"
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{section}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/config/dkim",
+ "text" : "dkim"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Edit custom SpamAssassin score",
+ "method" : "DELETE",
+ "name" : "delete_score",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "The name of the rule.",
+ "pattern" : "[a-zA-Z\\_\\-\\.0-9]+",
+ "type" : "string"
+ }
+ }
},
- "maxsize" : {
- "default" : 10485760,
- "description" : "Maximum email size. Larger mails are rejected.",
- "minimum" : 1024,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1024 - N)"
- },
- "message_rate_limit" : {
- "default" : 0,
- "description" : "The maximal number of message delivery requests that any client is allowed to make to this service per minute.To disable this feature, specify a limit of 0.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "rejectunknown" : {
- "default" : 0,
- "description" : "Reject unknown clients.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "rejectunknownsender" : {
- "default" : 0,
- "description" : "Reject unknown senders.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "relay" : {
- "description" : "The default mail delivery transport (incoming mails).",
- "format" : "address",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "relaynomx" : {
- "default" : 0,
- "description" : "Disable MX lookups for default relay.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "relayport" : {
- "default" : 25,
- "description" : "SMTP port number for relay host.",
- "maximum" : 65535,
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - 65535)"
- },
- "smarthost" : {
- "description" : "When set, all outgoing mails are deliverd to the specified smarthost.",
- "format" : "address",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "spf" : {
- "default" : 1,
- "description" : "Use Sender Policy Framework.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "tls" : {
- "default" : 0,
- "description" : "Enable TLS.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "tlsheader" : {
- "default" : 0,
- "description" : "Add TLS received header.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "tlslog" : {
- "default" : 0,
- "description" : "Enable TLS Logging.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "use_rbl" : {
- "default" : 1,
- "description" : "Use Realtime Blacklists.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get custom SpamAssassin score",
+ "method" : "GET",
+ "name" : "get_score",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "The name of the rule.",
+ "pattern" : "[a-zA-Z\\_\\-\\.0-9]+",
+ "type" : "string"
+ }
+ }
},
- "verifyreceivers" : {
- "description" : "Enable receiver verification. The value spefifies the numerical reply code when the Postfix SMTP server rejects a recipient address.",
- "enum" : [
- "450",
- "550"
- ],
- "optional" : 1,
- "type" : "string"
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "properties" : {
+ "comment" : {
+ "description" : "The Comment.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "The name of the rule.",
+ "pattern" : "[a-zA-Z\\_\\-\\.0-9]+",
+ "type" : "string"
+ },
+ "score" : {
+ "description" : "The score the rule should be valued at.",
+ "type" : "number"
+ }
+ },
+ "type" : "object"
}
},
- "type" : "object"
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Edit custom SpamAssassin score",
+ "method" : "PUT",
+ "name" : "edit_score",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "The Comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "The name of the rule.",
+ "pattern" : "[a-zA-Z\\_\\-\\.0-9]+",
+ "type" : "string"
+ },
+ "score" : {
+ "description" : "The score the rule should be valued at.",
+ "type" : "number",
+ "typetext" : "<number>"
+ }
+ }
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/customscores/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Revert custom score changes.",
+ "method" : "DELETE",
+ "name" : "revert_score_changes",
+ "parameters" : {
+ "additionalProperties" : 0
},
"permissions" : {
"check" : [
"returns" : {
"type" : "null"
}
- }
- },
- "leaf" : 1,
- "path" : "/config/mail",
- "text" : "mail"
- },
- {
- "info" : {
+ },
"GET" : {
- "description" : "Read spam configuration properties.",
+ "allowtoken" : 1,
+ "description" : "List custom scores.",
"method" : "GET",
- "name" : "read_spam_section",
+ "name" : "list_scores",
"parameters" : {
"additionalProperties" : 0
},
},
"proxyto" : "master",
"returns" : {
- "type" : "object"
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "description" : "The Comment.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "The name of the rule.",
+ "optional" : 1,
+ "pattern" : "[a-zA-Z\\_\\-\\.0-9]+",
+ "type" : "string"
+ },
+ "score" : {
+ "description" : "The score the rule should be valued at.",
+ "optional" : 1,
+ "type" : "number"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
},
- "PUT" : {
- "description" : "Update spam configuration properties.",
- "method" : "PUT",
- "name" : "update_spam_section",
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create custom SpamAssassin score",
+ "method" : "POST",
+ "name" : "create_score",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "bounce_score" : {
- "default" : 0,
- "description" : "Additional score for bounce mails.",
- "maximum" : 1000,
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - 1000)"
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
- "maxLength" : 4096,
+ "comment" : {
+ "description" : "The Comment.",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"type" : "string",
"typetext" : "<string>"
},
- "languages" : {
- "default" : "all",
- "description" : "This option is used to specify which languages are considered OK for incoming mail.",
- "optional" : 1,
- "pattern" : "(all|([a-z][a-z])+( ([a-z][a-z])+)*)",
+ "name" : {
+ "description" : "The name of the rule.",
+ "pattern" : "[a-zA-Z\\_\\-\\.0-9]+",
"type" : "string"
},
- "maxspamsize" : {
- "default" : 204800,
- "description" : "Maximum size of spam messages in bytes.",
- "minimum" : 64,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (64 - N)"
- },
- "rbl_checks" : {
- "default" : 1,
- "description" : "Enable real time blacklists (RBL) checks.",
+ "score" : {
+ "description" : "The score the rule should be valued at.",
+ "type" : "number",
+ "typetext" : "<number>"
+ }
+ }
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Apply custom score changes.",
+ "method" : "PUT",
+ "name" : "apply_score_changes",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
"optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "use_awl" : {
- "default" : 1,
- "description" : "Use the Auto-Whitelist plugin.",
+ "restart-daemon" : {
+ "default" : 0,
+ "description" : "If set, also restarts pmg-smtp-filter. This is necessary for the changes to work.",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
- },
- "use_bayes" : {
- "default" : 1,
- "description" : "Whether to use the naive-Bayesian-style classifier.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "use_razor" : {
- "default" : 1,
- "description" : "Whether to use Razor2, if it is available.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "wl_bounce_relays" : {
- "description" : "Whitelist legitimate bounce relays.",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
}
- },
- "type" : "object"
+ }
},
"permissions" : {
"check" : [
"protected" : 1,
"proxyto" : "master",
"returns" : {
- "type" : "null"
+ "type" : "string"
}
}
},
- "leaf" : 1,
- "path" : "/config/spam",
- "text" : "spam"
+ "leaf" : 0,
+ "path" : "/config/customscores",
+ "text" : "customscores"
},
{
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete an PBS remote",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "remote" : {
+ "description" : "Profile ID.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get Proxmox Backup Server remote configuration.",
+ "method" : "GET",
+ "name" : "read_config",
+ "parameters" : {
+ "additionalProperties" : 1,
+ "properties" : {
+ "remote" : {
+ "description" : "Proxmox Backup Server ID.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "proxyto" : "master",
+ "returns" : {}
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update PBS remote settings.",
+ "method" : "PUT",
+ "name" : "update_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "datastore" : {
+ "description" : "Proxmox Backup Server datastore name.",
+ "optional" : 1,
+ "pattern" : "(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)",
+ "type" : "string"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "description" : "Flag to disable (deactivate) the entry.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "fingerprint" : {
+ "description" : "Certificate SHA 256 fingerprint.",
+ "optional" : 1,
+ "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+ "type" : "string"
+ },
+ "include-statistics" : {
+ "description" : "Include statistics in scheduled backups",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "keep-daily" : {
+ "description" : "Keep backups for the last <N> different days. If there is more than one backup for a single day, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<N>"
+ },
+ "keep-hourly" : {
+ "description" : "Keep backups for the last <N> different hours. If there is more than one backup for a single hour, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<N>"
+ },
+ "keep-last" : {
+ "description" : "Keep the last <N> backups.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<N>"
+ },
+ "keep-monthly" : {
+ "description" : "Keep backups for the last <N> different months. If there is more than one backup for a single month, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<N>"
+ },
+ "keep-weekly" : {
+ "description" : "Keep backups for the last <N> different weeks. If there ismore than one backup for a single week, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<N>"
+ },
+ "keep-yearly" : {
+ "description" : "Keep backups for the last <N> different years. If there is more than one backup for a single year, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<N>"
+ },
+ "namespace" : {
+ "description" : "Proxmox Backup Server namespace in the datastore, defaults to the root NS.",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)/){0,7}(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*))?",
+ "type" : "string"
+ },
+ "notify" : {
+ "description" : "Specify when to notify via e-mail",
+ "enum" : [
+ "always",
+ "error",
+ "never"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "password" : {
+ "description" : "Password or API token secret for the user on the Proxmox Backup Server.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "remote" : {
+ "description" : "Proxmox Backup Server ID.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "server" : {
+ "description" : "Proxmox Backup Server address.",
+ "format" : "address",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "username" : {
+ "description" : "Username or API token ID on the Proxmox Backup Server",
+ "maxLength" : 512,
+ "minLength" : 3,
+ "optional" : 1,
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/pbs/{remote}",
+ "text" : "{remote}"
+ }
+ ],
"info" : {
"GET" : {
- "description" : "Read spamquar configuration properties.",
+ "allowtoken" : 1,
+ "description" : "List all configured Proxmox Backup Server instances.",
"method" : "GET",
- "name" : "read_spamquar_section",
+ "name" : "list",
"parameters" : {
"additionalProperties" : 0
},
"audit"
]
},
+ "protected" : 1,
"proxyto" : "master",
"returns" : {
- "type" : "object"
+ "items" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "datastore" : {
+ "description" : "Proxmox Backup Server datastore name.",
+ "optional" : 0,
+ "pattern" : "(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)",
+ "type" : "string"
+ },
+ "disable" : {
+ "description" : "Flag to disable (deactivate) the entry.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "fingerprint" : {
+ "description" : "Certificate SHA 256 fingerprint.",
+ "optional" : 1,
+ "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+ "type" : "string"
+ },
+ "include-statistics" : {
+ "description" : "Include statistics in scheduled backups",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "keep-daily" : {
+ "description" : "Keep backups for the last <N> different days. If there is more than one backup for a single day, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "keep-hourly" : {
+ "description" : "Keep backups for the last <N> different hours. If there is more than one backup for a single hour, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "keep-last" : {
+ "description" : "Keep the last <N> backups.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "keep-monthly" : {
+ "description" : "Keep backups for the last <N> different months. If there is more than one backup for a single month, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "keep-weekly" : {
+ "description" : "Keep backups for the last <N> different weeks. If there ismore than one backup for a single week, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "keep-yearly" : {
+ "description" : "Keep backups for the last <N> different years. If there is more than one backup for a single year, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "namespace" : {
+ "description" : "Proxmox Backup Server namespace in the datastore, defaults to the root NS.",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)/){0,7}(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*))?",
+ "type" : "string"
+ },
+ "notify" : {
+ "description" : "Specify when to notify via e-mail",
+ "enum" : [
+ "always",
+ "error",
+ "never"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "password" : {
+ "description" : "Password or API token secret for the user on the Proxmox Backup Server.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "remote" : {
+ "description" : "Proxmox Backup Server ID.",
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "server" : {
+ "description" : "Proxmox Backup Server address.",
+ "format" : "address",
+ "maxLength" : 256,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "username" : {
+ "description" : "Username or API token ID on the Proxmox Backup Server",
+ "maxLength" : 512,
+ "minLength" : 3,
+ "optional" : 1,
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{remote}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
},
- "PUT" : {
- "description" : "Update spamquar configuration properties.",
- "method" : "PUT",
- "name" : "update_spamquar_section",
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Add Proxmox Backup Server remote instance.",
+ "method" : "POST",
+ "name" : "create",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "allowhrefs" : {
- "default" : 1,
- "description" : "Allow to view hyperlinks.",
+ "datastore" : {
+ "description" : "Proxmox Backup Server datastore name.",
+ "optional" : 0,
+ "pattern" : "(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)",
+ "type" : "string"
+ },
+ "disable" : {
+ "description" : "Flag to disable (deactivate) the entry.",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
},
- "authmode" : {
- "default" : "ticket",
- "description" : "Authentication mode to access the quarantine interface. Mode 'ticket' allows login using tickets sent with the daily spam report. Mode 'ldap' requires to login using an LDAP account. Finally, mode 'ldapticket' allows both ways.",
- "enum" : [
- "ticket",
- "ldap",
- "ldapticket"
- ],
+ "fingerprint" : {
+ "description" : "Certificate SHA 256 fingerprint.",
"optional" : 1,
+ "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
"type" : "string"
},
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
- "maxLength" : 4096,
+ "include-statistics" : {
+ "description" : "Include statistics in scheduled backups",
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "keep-daily" : {
+ "description" : "Keep backups for the last <N> different days. If there is more than one backup for a single day, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "integer",
+ "typetext" : "<N>"
},
- "hostname" : {
- "description" : "Quarantine Host. Usefule if you run a Cluster and want users to connect to a specific host.",
- "format" : "address",
+ "keep-hourly" : {
+ "description" : "Keep backups for the last <N> different hours. If there is more than one backup for a single hour, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "integer",
+ "typetext" : "<N>"
},
- "lifetime" : {
- "default" : 7,
- "description" : "Quarantine life time (days)",
- "minimum" : 1,
+ "keep-last" : {
+ "description" : "Keep the last <N> backups.",
+ "format_description" : "N",
+ "minimum" : "0",
"optional" : 1,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<N>"
},
- "mailfrom" : {
- "description" : "Text for 'From' header in daily spam report mails.",
+ "keep-monthly" : {
+ "description" : "Keep backups for the last <N> different months. If there is more than one backup for a single month, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "integer",
+ "typetext" : "<N>"
},
- "reportstyle" : {
- "default" : "verbose",
- "description" : "Spam report style.",
- "enum" : [
- "none",
- "short",
- "verbose",
- "custom"
- ],
+ "keep-weekly" : {
+ "description" : "Keep backups for the last <N> different weeks. If there ismore than one backup for a single week, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
"optional" : 1,
- "type" : "string"
+ "type" : "integer",
+ "typetext" : "<N>"
},
- "viewimages" : {
- "default" : 1,
- "description" : "Allow to view images.",
+ "keep-yearly" : {
+ "description" : "Keep backups for the last <N> different years. If there is more than one backup for a single year, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
"optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- }
- },
- "type" : "object"
- },
- "permissions" : {
- "check" : [
- "admin"
- ]
- },
- "protected" : 1,
- "proxyto" : "master",
- "returns" : {
- "type" : "null"
- }
- }
- },
- "leaf" : 1,
- "path" : "/config/spamquar",
- "text" : "spamquar"
- },
- {
- "info" : {
- "GET" : {
- "description" : "Read virusquar configuration properties.",
- "method" : "GET",
- "name" : "read_virusquar_section",
- "parameters" : {
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "admin",
- "audit"
- ]
- },
- "proxyto" : "master",
- "returns" : {
- "type" : "object"
- }
- },
- "PUT" : {
- "description" : "Update virusquar configuration properties.",
- "method" : "PUT",
- "name" : "update_virusquar_section",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "allowhrefs" : {
- "default" : 1,
- "description" : "Allow to view hyperlinks.",
+ "type" : "integer",
+ "typetext" : "<N>"
+ },
+ "namespace" : {
+ "description" : "Proxmox Backup Server namespace in the datastore, defaults to the root NS.",
+ "maxLength" : 256,
"optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "pattern" : "(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)/){0,7}(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*))?",
+ "type" : "string"
},
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
- "maxLength" : 4096,
+ "notify" : {
+ "description" : "Specify when to notify via e-mail",
+ "enum" : [
+ "always",
+ "error",
+ "never"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "password" : {
+ "description" : "Password or API token secret for the user on the Proxmox Backup Server.",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
+ "remote" : {
+ "description" : "Proxmox Backup Server ID.",
+ "format" : "pve-configid",
"type" : "string",
"typetext" : "<string>"
},
- "lifetime" : {
- "default" : 7,
- "description" : "Quarantine life time (days)",
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "server" : {
+ "description" : "Proxmox Backup Server address.",
+ "format" : "address",
+ "maxLength" : 256,
+ "optional" : 0,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "viewimages" : {
- "default" : 1,
- "description" : "Allow to view images.",
+ "username" : {
+ "description" : "Username or API token ID on the Proxmox Backup Server",
+ "maxLength" : 512,
+ "minLength" : 3,
"optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+ "type" : "string"
}
},
"type" : "object"
}
}
},
- "leaf" : 1,
- "path" : "/config/virusquar",
- "text" : "virusquar"
+ "leaf" : 0,
+ "path" : "/config/pbs",
+ "text" : "pbs"
},
- {
- "info" : {
- "POST" : {
- "description" : "Test Regex",
- "method" : "POST",
- "name" : "regextest",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "regex" : {
- "description" : "The Regex to test",
- "maxLength" : 1024,
- "type" : "string",
- "typetext" : "<string>"
- },
- "text" : {
- "description" : "The String to test",
- "maxLength" : 1024,
- "type" : "string",
- "typetext" : "<string>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "admin",
- "qmanager",
- "audit"
- ]
- },
- "protected" : 0,
- "returns" : {
- "type" : "number"
- }
- }
- },
- "leaf" : 1,
- "path" : "/config/regextest",
- "text" : "regextest"
- }
- ],
- "info" : {
- "GET" : {
- "description" : "Directory index.",
- "method" : "GET",
- "name" : "index",
- "parameters" : {
- "additionalProperties" : 0
- },
- "returns" : {
- "items" : {
- "properties" : {
- "section" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{section}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- }
- }
- },
- "leaf" : 0,
- "path" : "/config",
- "text" : "config"
- },
- {
- "children" : [
{
"children" : [
{
"children" : [
{
"info" : {
- "GET" : {
- "description" : "Print Postfix queue domain and age distribution.",
- "method" : "GET",
- "name" : "qshape",
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete ACME plugin configuration.",
+ "method" : "DELETE",
+ "name" : "delete_plugin",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "id" : {
+ "description" : "Unique identifier for ACME plugin instance.",
+ "format" : "pve-configid",
"type" : "string",
"typetext" : "<string>"
- },
- "queue" : {
- "default" : "deferred",
- "description" : "Postfix queue name.",
- "enum" : [
- "deferred",
- "active",
- "incoming",
- "hold"
- ],
- "optional" : 1,
- "type" : "string"
}
}
},
"permissions" : {
"check" : [
- "admin",
- "audit"
+ "admin"
]
},
"protected" : 1,
- "proxyto" : "node",
"returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "type" : "array"
+ "type" : "null"
}
- }
- },
- "leaf" : 1,
- "path" : "/nodes/{node}/postfix/qshape",
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get ACME plugin configuration.",
+ "method" : "GET",
+ "name" : "get_plugin_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "Unique identifier for ACME plugin instance.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update ACME plugin configuration.",
+ "method" : "PUT",
+ "name" : "update_plugin",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "api" : {
+ "description" : "API plugin name",
+ "enum" : [
+ "1984hosting",
+ "acmedns",
+ "acmeproxy",
+ "active24",
+ "ad",
+ "ali",
+ "anx",
+ "arvan",
+ "aurora",
+ "autodns",
+ "aws",
+ "azion",
+ "azure",
+ "bunny",
+ "cf",
+ "clouddns",
+ "cloudns",
+ "cn",
+ "conoha",
+ "constellix",
+ "cpanel",
+ "curanet",
+ "cyon",
+ "da",
+ "ddnss",
+ "desec",
+ "df",
+ "dgon",
+ "dnshome",
+ "dnsimple",
+ "dnsservices",
+ "do",
+ "doapi",
+ "domeneshop",
+ "dp",
+ "dpi",
+ "dreamhost",
+ "duckdns",
+ "durabledns",
+ "dyn",
+ "dynu",
+ "dynv6",
+ "easydns",
+ "edgedns",
+ "euserv",
+ "exoscale",
+ "fornex",
+ "freedns",
+ "gandi_livedns",
+ "gcloud",
+ "gd",
+ "geoscaling",
+ "he",
+ "hetzner",
+ "hexonet",
+ "hostingde",
+ "huaweicloud",
+ "infoblox",
+ "infomaniak",
+ "internetbs",
+ "inwx",
+ "ionos",
+ "ispconfig",
+ "jd",
+ "joker",
+ "kappernet",
+ "kas",
+ "kinghost",
+ "knot",
+ "la",
+ "leaseweb",
+ "lexicon",
+ "linode",
+ "linode_v4",
+ "loopia",
+ "lua",
+ "maradns",
+ "me",
+ "miab",
+ "misaka",
+ "myapi",
+ "mydevil",
+ "mydnsjp",
+ "mythic_beasts",
+ "namecheap",
+ "namecom",
+ "namesilo",
+ "nederhost",
+ "neodigit",
+ "netcup",
+ "netlify",
+ "nic",
+ "njalla",
+ "nm",
+ "nsd",
+ "nsone",
+ "nsupdate",
+ "nw",
+ "oci",
+ "one",
+ "online",
+ "openprovider",
+ "openstack",
+ "opnsense",
+ "ovh",
+ "pdns",
+ "pleskxml",
+ "pointhq",
+ "porkbun",
+ "rackcorp",
+ "rackspace",
+ "rage4",
+ "rcode0",
+ "regru",
+ "scaleway",
+ "schlundtech",
+ "selectel",
+ "selfhost",
+ "servercow",
+ "simply",
+ "tele3",
+ "transip",
+ "udr",
+ "ultra",
+ "unoeuro",
+ "variomedia",
+ "veesp",
+ "vercel",
+ "vscale",
+ "vultr",
+ "websupport",
+ "world4you",
+ "yandex",
+ "yc",
+ "zilore",
+ "zone",
+ "zonomi"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "data" : {
+ "description" : "DNS plugin data. (base64 encoded)",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "description" : "Flag to disable the config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "ACME Plugin ID name",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "validation-delay" : {
+ "default" : 30,
+ "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
+ "maximum" : 172800,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 172800)"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/acme/plugins/{id}",
+ "text" : "{id}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "ACME plugin index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "type" : {
+ "description" : "Only list ACME plugins of a specific type",
+ "enum" : [
+ "dns",
+ "standalone"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "plugin" : {
+ "description" : "Unique identifier for ACME plugin instance.",
+ "format" : "pve-configid",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{plugin}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Add ACME plugin configuration.",
+ "method" : "POST",
+ "name" : "add_plugin",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "api" : {
+ "description" : "API plugin name",
+ "enum" : [
+ "1984hosting",
+ "acmedns",
+ "acmeproxy",
+ "active24",
+ "ad",
+ "ali",
+ "anx",
+ "arvan",
+ "aurora",
+ "autodns",
+ "aws",
+ "azion",
+ "azure",
+ "bunny",
+ "cf",
+ "clouddns",
+ "cloudns",
+ "cn",
+ "conoha",
+ "constellix",
+ "cpanel",
+ "curanet",
+ "cyon",
+ "da",
+ "ddnss",
+ "desec",
+ "df",
+ "dgon",
+ "dnshome",
+ "dnsimple",
+ "dnsservices",
+ "do",
+ "doapi",
+ "domeneshop",
+ "dp",
+ "dpi",
+ "dreamhost",
+ "duckdns",
+ "durabledns",
+ "dyn",
+ "dynu",
+ "dynv6",
+ "easydns",
+ "edgedns",
+ "euserv",
+ "exoscale",
+ "fornex",
+ "freedns",
+ "gandi_livedns",
+ "gcloud",
+ "gd",
+ "geoscaling",
+ "he",
+ "hetzner",
+ "hexonet",
+ "hostingde",
+ "huaweicloud",
+ "infoblox",
+ "infomaniak",
+ "internetbs",
+ "inwx",
+ "ionos",
+ "ispconfig",
+ "jd",
+ "joker",
+ "kappernet",
+ "kas",
+ "kinghost",
+ "knot",
+ "la",
+ "leaseweb",
+ "lexicon",
+ "linode",
+ "linode_v4",
+ "loopia",
+ "lua",
+ "maradns",
+ "me",
+ "miab",
+ "misaka",
+ "myapi",
+ "mydevil",
+ "mydnsjp",
+ "mythic_beasts",
+ "namecheap",
+ "namecom",
+ "namesilo",
+ "nederhost",
+ "neodigit",
+ "netcup",
+ "netlify",
+ "nic",
+ "njalla",
+ "nm",
+ "nsd",
+ "nsone",
+ "nsupdate",
+ "nw",
+ "oci",
+ "one",
+ "online",
+ "openprovider",
+ "openstack",
+ "opnsense",
+ "ovh",
+ "pdns",
+ "pleskxml",
+ "pointhq",
+ "porkbun",
+ "rackcorp",
+ "rackspace",
+ "rage4",
+ "rcode0",
+ "regru",
+ "scaleway",
+ "schlundtech",
+ "selectel",
+ "selfhost",
+ "servercow",
+ "simply",
+ "tele3",
+ "transip",
+ "udr",
+ "ultra",
+ "unoeuro",
+ "variomedia",
+ "veesp",
+ "vercel",
+ "vscale",
+ "vultr",
+ "websupport",
+ "world4you",
+ "yandex",
+ "yc",
+ "zilore",
+ "zone",
+ "zonomi"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "data" : {
+ "description" : "DNS plugin data. (base64 encoded)",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "description" : "Flag to disable the config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "ACME Plugin ID name",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "ACME challenge type.",
+ "enum" : [
+ "dns",
+ "standalone"
+ ],
+ "type" : "string"
+ },
+ "validation-delay" : {
+ "default" : 30,
+ "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
+ "maximum" : 172800,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 172800)"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/config/acme/plugins",
+ "text" : "plugins"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Deactivate existing ACME account at CA.",
+ "method" : "DELETE",
+ "name" : "deactivate_account",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "default" : 0,
+ "description" : "Delete account data even if the server refuses to deactivate the account.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "name" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
+ "format" : "pve-configid",
+ "format_description" : "name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<name>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "string"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Return existing ACME account information.",
+ "method" : "GET",
+ "name" : "get_account",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
+ "format" : "pve-configid",
+ "format_description" : "name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<name>"
+ }
+ }
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "account" : {
+ "optional" : 1,
+ "renderer" : "yaml",
+ "type" : "object"
+ },
+ "directory" : {
+ "description" : "URL of ACME CA directory endpoint.",
+ "optional" : 1,
+ "pattern" : "^https?://.*",
+ "type" : "string"
+ },
+ "location" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "tos" : {
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
+ "method" : "PUT",
+ "name" : "update_account",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "contact" : {
+ "description" : "Contact email addresses.",
+ "format" : "email-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
+ "format" : "pve-configid",
+ "format_description" : "name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<name>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/acme/account/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "ACME account index.",
+ "method" : "GET",
+ "name" : "account_index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Register a new ACME account with CA.",
+ "method" : "POST",
+ "name" : "register_account",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "contact" : {
+ "description" : "Contact email addresses.",
+ "format" : "email-list",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "directory" : {
+ "default" : "https://acme-v02.api.letsencrypt.org/directory",
+ "description" : "URL of ACME CA directory endpoint.",
+ "optional" : 1,
+ "pattern" : "^https?://.*",
+ "type" : "string"
+ },
+ "name" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
+ "format" : "pve-configid",
+ "format_description" : "name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<name>"
+ },
+ "tos_url" : {
+ "description" : "URL of CA TermsOfService - setting this indicates agreement.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/config/acme/account",
+ "text" : "account"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Retrieve ACME TermsOfService URL from CA.",
+ "method" : "GET",
+ "name" : "get_tos",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "directory" : {
+ "default" : "https://acme-v02.api.letsencrypt.org/directory",
+ "description" : "URL of ACME CA directory endpoint.",
+ "optional" : 1,
+ "pattern" : "^https?://.*",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "description" : "ACME TermsOfService URL.",
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/acme/tos",
+ "text" : "tos"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get named known ACME directory endpoints.",
+ "method" : "GET",
+ "name" : "get_directories",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "url" : {
+ "description" : "URL of ACME CA directory endpoint.",
+ "pattern" : "^https?://.*",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/acme/directories",
+ "text" : "directories"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get schema of ACME challenge types.",
+ "method" : "GET",
+ "name" : "challenge-schema",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "Human readable name, falls back to id",
+ "type" : "string"
+ },
+ "schema" : {
+ "type" : "object"
+ },
+ "type" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/acme/challenge-schema",
+ "text" : "challenge-schema"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "ACME index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/config/acme",
+ "text" : "acme"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read the webauthn configuration.",
+ "method" : "GET",
+ "name" : "get_webauthn_config",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "protected" : 1,
+ "returns" : {
+ "optional" : 1,
+ "properties" : {
+ "allow-subdomains" : {
+ "default" : 1,
+ "description" : "Whether to allow the origin to be a subdomain, rather than the exact URL.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "id" : {
+ "description" : "Relying part ID. Must be the domain name without protocol, port or location.\nChanging this *will* break existing credentials.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "origin" : {
+ "description" : "Site origin. Must be a `https://` URL (or `http://localhost`). Should contain the address users type in their browsers to access the web interface.\nChanging this *may* break existing credentials.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "rp" : {
+ "description" : "Relying party name. Any text identifier.\nChanging this *may* break existing credentials.",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Read the webauthn configuration.",
+ "method" : "PUT",
+ "name" : "update_webauthn_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "allow-subdomains" : {
+ "default" : 1,
+ "description" : "Whether to allow the origin to be a subdomain, rather than the exact URL.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "enum" : [
+ "id",
+ "origin",
+ "allow-subdomains",
+ "rp"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "id" : {
+ "description" : "Relying part ID. Must be the domain name without protocol, port or location.\nChanging this *will* break existing credentials.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "origin" : {
+ "description" : "Site origin. Must be a `https://` URL (or `http://localhost`). Should contain the address users type in their browsers to access the web interface.\nChanging this *may* break existing credentials.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "rp" : {
+ "description" : "Relying party name. Any text identifier.\nChanging this *may* break existing credentials.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/tfa/webauthn",
+ "text" : "webauthn"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "section" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{section}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/config/tfa",
+ "text" : "tfa"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read admin configuration properties.",
+ "method" : "GET",
+ "name" : "read_admin_section",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update admin configuration properties.",
+ "method" : "PUT",
+ "name" : "update_admin_section",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "advfilter" : {
+ "default" : 1,
+ "description" : "Enable advanced filters for statistic.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>",
+ "verbose_description" : "Enable advanced filters for statistic.\n\nIf this is enabled, the receiver statistic are limited to active ones\n(receivers which also sent out mail in the 90 days before), and the contact\nstatistic will not contain these active receivers.\n"
+ },
+ "avast" : {
+ "default" : 0,
+ "description" : "Use Avast Virus Scanner (/usr/bin/scan). You need to buy and install 'Avast Core Security' before you can enable this feature.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "clamav" : {
+ "default" : 1,
+ "description" : "Use ClamAV Virus Scanner. This is the default virus scanner and is enabled by default.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "custom_check" : {
+ "default" : 0,
+ "description" : "Use Custom Check Script. The script has to take the defined arguments and can return Virus findings or a Spamscore.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "custom_check_path" : {
+ "default" : "/usr/local/bin/pmg-custom-check",
+ "description" : "Absolute Path to the Custom Check Script",
+ "optional" : 1,
+ "pattern" : "^/([^/\\0]+\\/)+[^/\\0]+$",
+ "type" : "string"
+ },
+ "dailyreport" : {
+ "default" : 1,
+ "description" : "Send daily reports.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "demo" : {
+ "default" : 0,
+ "description" : "Demo mode - do not start SMTP filter.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dkim_selector" : {
+ "description" : "Default DKIM selector",
+ "format" : "dns-name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dkim_sign" : {
+ "default" : 0,
+ "description" : "DKIM sign outbound mails with the configured Selector.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "dkim_sign_all_mail" : {
+ "default" : 0,
+ "description" : "DKIM sign all outgoing mails irrespective of the Envelope From domain.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "email" : {
+ "default" : "admin@domain.tld",
+ "description" : "Administrator E-Mail address.",
+ "format" : "email",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "http_proxy" : {
+ "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
+ "optional" : 1,
+ "pattern" : "http://.*",
+ "type" : "string"
+ },
+ "statlifetime" : {
+ "default" : 7,
+ "description" : "User Statistics Lifetime (days)",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/admin",
+ "text" : "admin"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read clamav configuration properties.",
+ "method" : "GET",
+ "name" : "read_clamav_section",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update clamav configuration properties.",
+ "method" : "PUT",
+ "name" : "update_clamav_section",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "archiveblockencrypted" : {
+ "default" : 0,
+ "description" : "Whether to mark encrypted archives and documents as heuristic virus match. A match does not necessarily result in an immediate block, it just raises the Spam Score by 'clamav_heuristic_score'.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "archivemaxfiles" : {
+ "default" : 1000,
+ "description" : "Number of files to be scanned within an archive, a document, or any other kind of container. Warning: disabling this limit or setting it too high may result in severe damage to the system.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "archivemaxrec" : {
+ "default" : 5,
+ "description" : "Nested archives are scanned recursively, e.g. if a ZIP archive contains a TAR file, all files within it will also be scanned. This options specifies how deeply the process should be continued. Warning: setting this limit too high may result in severe damage to the system.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "archivemaxsize" : {
+ "default" : 25000000,
+ "description" : "Files larger than this limit (in bytes) won't be scanned.",
+ "minimum" : 1000000,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1000000 - N)"
+ },
+ "dbmirror" : {
+ "default" : "database.clamav.net",
+ "description" : "ClamAV database mirror server.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "maxcccount" : {
+ "default" : 0,
+ "description" : "This option sets the lowest number of Credit Card or Social Security numbers found in a file to generate a detect.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "maxscansize" : {
+ "default" : 100000000,
+ "description" : "Sets the maximum amount of data (in bytes) to be scanned for each input file.",
+ "minimum" : 1000000,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1000000 - N)"
+ },
+ "safebrowsing" : {
+ "default" : 0,
+ "description" : "Enables support for Google Safe Browsing. (deprecated option, will be ignored)",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "scriptedupdates" : {
+ "default" : 1,
+ "description" : "Enables ScriptedUpdates (incremental download of signatures)",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/clamav",
+ "text" : "clamav"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read mail configuration properties.",
+ "method" : "GET",
+ "name" : "read_mail_section",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update mail configuration properties.",
+ "method" : "PUT",
+ "name" : "update_mail_section",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "banner" : {
+ "default" : "ESMTP Proxmox",
+ "description" : "ESMTP banner.",
+ "maxLength" : 1024,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "before_queue_filtering" : {
+ "default" : 0,
+ "description" : "Enable before queue filtering by pmg-smtp-filter",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "conn_count_limit" : {
+ "default" : 50,
+ "description" : "How many simultaneous connections any client is allowed to make to this service. To disable this feature, specify a limit of 0.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "conn_rate_limit" : {
+ "default" : 0,
+ "description" : "The maximal number of connection attempts any client is allowed to make to this service per minute. To disable this feature, specify a limit of 0.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dnsbl_sites" : {
+ "description" : "Optional list of DNS white/blacklist domains (postfix option `postscreen_dnsbl_sites`).",
+ "format" : "dnsbl-entry-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dnsbl_threshold" : {
+ "default" : 1,
+ "description" : "The inclusive lower bound for blocking a remote SMTP client, based on its combined DNSBL score (postfix option `postscreen_dnsbl_threshold`).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "dwarning" : {
+ "default" : 4,
+ "description" : "SMTP delay warning time (in hours). (postfix option `delay_warning_time`)",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "ext_port" : {
+ "default" : 25,
+ "description" : "SMTP port number for incoming mail (untrusted). This must be a different number than 'int_port'.",
+ "maximum" : 65535,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65535)"
+ },
+ "greylist" : {
+ "default" : 1,
+ "description" : "Use Greylisting for IPv4.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "greylist6" : {
+ "default" : 0,
+ "description" : "Use Greylisting for IPv6.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "greylistmask4" : {
+ "default" : 24,
+ "description" : "Netmask to apply for greylisting IPv4 hosts",
+ "maximum" : 32,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 32)"
+ },
+ "greylistmask6" : {
+ "default" : 64,
+ "description" : "Netmask to apply for greylisting IPv6 hosts",
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 128)"
+ },
+ "helotests" : {
+ "default" : 0,
+ "description" : "Use SMTP HELO tests. (postfix option `smtpd_helo_restrictions`)",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "hide_received" : {
+ "default" : 0,
+ "description" : "Hide received header in outgoing mails.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "int_port" : {
+ "default" : 26,
+ "description" : "SMTP port number for outgoing mail (trusted).",
+ "maximum" : 65535,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65535)"
+ },
+ "max_filters" : {
+ "default" : 31,
+ "description" : "Maximum number of pmg-smtp-filter processes.",
+ "maximum" : 40,
+ "minimum" : 3,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (3 - 40)"
+ },
+ "max_policy" : {
+ "default" : 5,
+ "description" : "Maximum number of pmgpolicy processes.",
+ "maximum" : 10,
+ "minimum" : 2,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (2 - 10)"
+ },
+ "max_smtpd_in" : {
+ "default" : 100,
+ "description" : "Maximum number of SMTP daemon processes (in).",
+ "maximum" : 100,
+ "minimum" : 3,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (3 - 100)"
+ },
+ "max_smtpd_out" : {
+ "default" : 100,
+ "description" : "Maximum number of SMTP daemon processes (out).",
+ "maximum" : 100,
+ "minimum" : 3,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (3 - 100)"
+ },
+ "maxsize" : {
+ "default" : 10485760,
+ "description" : "Maximum email size. Larger mails are rejected. (postfix option `message_size_limit`)",
+ "minimum" : 1024,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1024 - N)"
+ },
+ "message_rate_limit" : {
+ "default" : 0,
+ "description" : "The maximal number of message delivery requests that any client is allowed to make to this service per minute.To disable this feature, specify a limit of 0.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "ndr_on_block" : {
+ "default" : 0,
+ "description" : "Send out NDR when mail gets blocked",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "rejectunknown" : {
+ "default" : 0,
+ "description" : "Reject unknown clients. (postfix option `reject_unknown_client_hostname`)",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "rejectunknownsender" : {
+ "default" : 0,
+ "description" : "Reject unknown senders. (postfix option `reject_unknown_sender_domain`)",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "relay" : {
+ "description" : "The default mail delivery transport (incoming mails).",
+ "format" : "address",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "relaynomx" : {
+ "default" : 0,
+ "description" : "Disable MX lookups for default relay (SMTP only, ignored for LMTP).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "relayport" : {
+ "default" : 25,
+ "description" : "SMTP/LMTP port number for relay host.",
+ "maximum" : 65535,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65535)"
+ },
+ "relayprotocol" : {
+ "default" : "smtp",
+ "description" : "Transport protocol for relay host.",
+ "enum" : [
+ "smtp",
+ "lmtp"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "smarthost" : {
+ "description" : "When set, all outgoing mails are deliverd to the specified smarthost. (postfix option `default_transport`)",
+ "format" : "address",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "smarthostport" : {
+ "default" : 25,
+ "description" : "SMTP port number for smarthost. (postfix option `default_transport`)",
+ "maximum" : 65535,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65535)"
+ },
+ "smtputf8" : {
+ "default" : 1,
+ "description" : "Enable SMTPUTF8 support in Postfix and detection for locally generated mail (postfix option `smtputf8_enable`)",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "spf" : {
+ "default" : 1,
+ "description" : "Use Sender Policy Framework.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "tls" : {
+ "default" : 0,
+ "description" : "Enable TLS.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "tlsheader" : {
+ "default" : 0,
+ "description" : "Add TLS received header.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "tlslog" : {
+ "default" : 0,
+ "description" : "Enable TLS Logging.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "verifyreceivers" : {
+ "description" : "Enable receiver verification. The value spefifies the numerical reply code when the Postfix SMTP server rejects a recipient address. (postfix options `reject_unknown_recipient_domain`, `reject_unverified_recipient`, and `unverified_recipient_reject_code`)",
+ "enum" : [
+ "450",
+ "550"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/mail",
+ "text" : "mail"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read spam configuration properties.",
+ "method" : "GET",
+ "name" : "read_spam_section",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update spam configuration properties.",
+ "method" : "PUT",
+ "name" : "update_spam_section",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "bounce_score" : {
+ "default" : 0,
+ "description" : "Additional score for bounce mails.",
+ "maximum" : 1000,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 1000)"
+ },
+ "clamav_heuristic_score" : {
+ "default" : 3,
+ "description" : "Score for ClamAV heuristics (Encrypted Archives/Documents, PhishingScanURLs, ...).",
+ "maximum" : 1000,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 1000)"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "extract_text" : {
+ "default" : 0,
+ "description" : "Extract text from attachments (doc, pdf, rtf, images) and scan for spam.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "languages" : {
+ "default" : "all",
+ "description" : "This option is used to specify which languages are considered OK for incoming mail.",
+ "optional" : 1,
+ "pattern" : "(all|([a-z][a-z])+( ([a-z][a-z])+)*)",
+ "type" : "string"
+ },
+ "maxspamsize" : {
+ "default" : 262144,
+ "description" : "Maximum size of spam messages in bytes.",
+ "minimum" : 64,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (64 - N)"
+ },
+ "rbl_checks" : {
+ "default" : 1,
+ "description" : "Enable real time blacklists (RBL) checks.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "use_awl" : {
+ "default" : 1,
+ "description" : "Use the Auto-Whitelist plugin.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "use_bayes" : {
+ "default" : 1,
+ "description" : "Whether to use the naive-Bayesian-style classifier.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "use_razor" : {
+ "default" : 1,
+ "description" : "Whether to use Razor2, if it is available.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "wl_bounce_relays" : {
+ "description" : "Whitelist legitimate bounce relays.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/spam",
+ "text" : "spam"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read spamquar configuration properties.",
+ "method" : "GET",
+ "name" : "read_spamquar_section",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update spamquar configuration properties.",
+ "method" : "PUT",
+ "name" : "update_spamquar_section",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "allowhrefs" : {
+ "default" : 1,
+ "description" : "Allow to view hyperlinks.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "authmode" : {
+ "default" : "ticket",
+ "description" : "Authentication mode to access the quarantine interface. Mode 'ticket' allows login using tickets sent with the daily spam report. Mode 'ldap' requires to login using an LDAP account. Finally, mode 'ldapticket' allows both ways.",
+ "enum" : [
+ "ticket",
+ "ldap",
+ "ldapticket"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "hostname" : {
+ "description" : "Quarantine Host. Useful if you run a Cluster and want users to connect to a specific host.",
+ "format" : "address",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "lifetime" : {
+ "default" : 7,
+ "description" : "Quarantine life time (days)",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "mailfrom" : {
+ "description" : "Text for 'From' header in daily spam report mails.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "port" : {
+ "default" : 8006,
+ "description" : "Quarantine Port. Useful if you have a reverse proxy or port forwarding for the webinterface. Only used for the generated Spam report.",
+ "maximum" : 65535,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65535)"
+ },
+ "protocol" : {
+ "default" : "https",
+ "description" : "Quarantine Webinterface Protocol. Useful if you have a reverse proxy for the webinterface. Only used for the generated Spam report.",
+ "enum" : [
+ "http",
+ "https"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "quarantinelink" : {
+ "default" : 0,
+ "description" : "Enables user self-service for Quarantine Links. Caution: this is accessible without authentication",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "reportstyle" : {
+ "default" : "verbose",
+ "description" : "Spam report style.",
+ "enum" : [
+ "none",
+ "short",
+ "verbose",
+ "custom"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "viewimages" : {
+ "default" : 1,
+ "description" : "Allow to view images.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/spamquar",
+ "text" : "spamquar"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read virusquar configuration properties.",
+ "method" : "GET",
+ "name" : "read_virusquar_section",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update virusquar configuration properties.",
+ "method" : "PUT",
+ "name" : "update_virusquar_section",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "allowhrefs" : {
+ "default" : 1,
+ "description" : "Allow to view hyperlinks.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "lifetime" : {
+ "default" : 7,
+ "description" : "Quarantine life time (days)",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "viewimages" : {
+ "default" : 1,
+ "description" : "Allow to view images.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/virusquar",
+ "text" : "virusquar"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Test Regex ignoring case",
+ "method" : "POST",
+ "name" : "regextest",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "regex" : {
+ "description" : "The Regex to test",
+ "maxLength" : 1024,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "text" : {
+ "description" : "The String to test",
+ "maxLength" : 1024,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "qmanager",
+ "audit"
+ ]
+ },
+ "protected" : 0,
+ "returns" : {
+ "type" : "number"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/config/regextest",
+ "text" : "regextest"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "section" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{section}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/config",
+ "text" : "config"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Print Postfix queue domain and age distribution.",
+ "method" : "GET",
+ "name" : "qshape",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "queue" : {
+ "default" : "deferred",
+ "description" : "Postfix queue name.",
+ "enum" : [
+ "deferred",
+ "active",
+ "incoming",
+ "hold"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/postfix/qshape",
"text" : "qshape"
},
{
- "children" : [
- {
- "children" : [
- {
- "info" : {
- "DELETE" : {
- "description" : "Delete one message with the named queue ID.",
- "method" : "DELETE",
- "name" : "delete_queued_mail",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- },
- "queue" : {
- "description" : "Postfix queue name.",
- "enum" : [
- "deferred",
- "active",
- "incoming",
- "hold"
- ],
- "type" : "string"
- },
- "queue_id" : {
- "description" : "The Message queue ID.",
- "maxLength" : 20,
- "minLength" : 8,
- "pattern" : "[a-zA-Z0-9]+",
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "check" : [
- "admin"
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "type" : "null"
- }
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete one message with the named queue ID.",
+ "method" : "DELETE",
+ "name" : "delete_queued_mail",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "queue" : {
+ "description" : "Postfix queue name.",
+ "enum" : [
+ "deferred",
+ "active",
+ "incoming",
+ "hold"
+ ],
+ "type" : "string"
+ },
+ "queue_id" : {
+ "description" : "The Message queue ID.",
+ "maxLength" : 20,
+ "minLength" : 8,
+ "pattern" : "[a-zA-Z0-9]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get the contents of a queued mail.",
+ "method" : "GET",
+ "name" : "read_queued_mail",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "body" : {
+ "default" : 0,
+ "description" : "Include body content.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "decode-header" : {
+ "default" : 0,
+ "description" : "Decodes the header fields.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "header" : {
+ "default" : 1,
+ "description" : "Show message header content.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "queue" : {
+ "description" : "Postfix queue name.",
+ "enum" : [
+ "deferred",
+ "active",
+ "incoming",
+ "hold"
+ ],
+ "type" : "string"
+ },
+ "queue_id" : {
+ "description" : "The Message queue ID.",
+ "maxLength" : 20,
+ "minLength" : 8,
+ "pattern" : "[a-zA-Z0-9]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Schedule immediate delivery of deferred mail with the specified queue ID.",
+ "method" : "POST",
+ "name" : "flush_queued_mail",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "queue" : {
+ "description" : "Postfix queue name.",
+ "enum" : [
+ "deferred",
+ "active",
+ "incoming",
+ "hold"
+ ],
+ "type" : "string"
+ },
+ "queue_id" : {
+ "description" : "The Message queue ID.",
+ "maxLength" : 20,
+ "minLength" : 8,
+ "pattern" : "[a-zA-Z0-9]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/postfix/queue/{queue}/{queue_id}",
+ "text" : "{queue_id}"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete all mails in the queue.",
+ "method" : "DELETE",
+ "name" : "delete_queue",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "queue" : {
+ "description" : "Postfix queue name.",
+ "enum" : [
+ "deferred",
+ "active",
+ "incoming",
+ "hold"
+ ],
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List the mail queue for a specific domain.",
+ "method" : "GET",
+ "name" : "mailq",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "filter" : {
+ "description" : "Filter string.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "limit" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "queue" : {
+ "description" : "Postfix queue name.",
+ "enum" : [
+ "deferred",
+ "active",
+ "incoming",
+ "hold"
+ ],
+ "type" : "string"
+ },
+ "sortdir" : {
+ "description" : "Sort direction.",
+ "enum" : [
+ "ASC",
+ "DESC"
+ ],
+ "optional" : 1,
+ "requires" : "sortfield",
+ "type" : "string"
+ },
+ "sortfield" : {
+ "description" : "Sort field.",
+ "enum" : [
+ "arrival_time",
+ "message_size",
+ "sender",
+ "receiver",
+ "reason"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{queue_id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/postfix/queue/{queue}",
+ "text" : "{queue}"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete all mails in all posfix queues.",
+ "method" : "DELETE",
+ "name" : "delete_all_queues",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "queue_index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/postfix/queue",
+ "text" : "queue"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Flush the queue: attempt to deliver all queued mail.",
+ "method" : "POST",
+ "name" : "flush_queues",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/postfix/flush_queues",
+ "text" : "flush_queues"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Discards the address verification cache.",
+ "method" : "POST",
+ "name" : "discard_verify_cache",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/postfix/discard_verify_cache",
+ "text" : "discard_verify_cache"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/postfix",
+ "text" : "postfix"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "ClamAV virus database status.",
+ "method" : "GET",
+ "name" : "database_status",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "build_time" : {
+ "type" : "string"
+ },
+ "nsigs" : {
+ "type" : "integer"
+ },
+ "type" : {
+ "type" : "string"
+ },
+ "version" : {
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Update ClamAV virus databases.",
+ "method" : "POST",
+ "name" : "update_database",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/clamav/database",
+ "text" : "database"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/clamav",
+ "text" : "clamav"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "SpamAssassin rules status.",
+ "method" : "GET",
+ "name" : "rules_status",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "channel" : {
+ "type" : "string"
},
- "GET" : {
- "description" : "Get the contents of a queued mail.",
- "method" : "GET",
- "name" : "read_queued_mail",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "body" : {
- "default" : 0,
- "description" : "Include body content.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "header" : {
- "default" : 1,
- "description" : "Show message header content.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- },
- "queue" : {
- "description" : "Postfix queue name.",
- "enum" : [
- "deferred",
- "active",
- "incoming",
- "hold"
- ],
- "type" : "string"
- },
- "queue_id" : {
- "description" : "The Message queue ID.",
- "maxLength" : 20,
- "minLength" : 8,
- "pattern" : "[a-zA-Z0-9]+",
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "check" : [
- "admin"
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "type" : "string"
- }
+ "last_updated" : {
+ "optional" : 1,
+ "type" : "integer"
},
- "POST" : {
- "description" : "Schedule immediate delivery of deferred mail with the specified queue ID.",
- "method" : "POST",
- "name" : "flush_queued_mail",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- },
- "queue" : {
- "description" : "Postfix queue name.",
- "enum" : [
- "deferred",
- "active",
- "incoming",
- "hold"
- ],
- "type" : "string"
- },
- "queue_id" : {
- "description" : "The Message queue ID.",
- "maxLength" : 20,
- "minLength" : 8,
- "pattern" : "[a-zA-Z0-9]+",
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "check" : [
- "admin"
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "type" : "null"
- }
+ "update_avail" : {
+ "type" : "boolean"
+ },
+ "update_version" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "version" : {
+ "optional" : 1,
+ "type" : "string"
}
},
- "leaf" : 1,
- "path" : "/nodes/{node}/postfix/queue/{queue}/{queue_id}",
- "text" : "{queue_id}"
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Update SpamAssassin rules.",
+ "method" : "POST",
+ "name" : "update_rules",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/spamassassin/rules",
+ "text" : "rules"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/spamassassin",
+ "text" : "spamassassin"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete network device configuration",
+ "method" : "DELETE",
+ "name" : "delete_network",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
- ],
- "info" : {
- "DELETE" : {
- "description" : "Delete all mails in the queue.",
- "method" : "DELETE",
- "name" : "delete_queue",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- },
- "queue" : {
- "description" : "Postfix queue name.",
- "enum" : [
- "deferred",
- "active",
- "incoming",
- "hold"
- ],
- "type" : "string"
- }
- }
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read network device configuration",
+ "method" : "GET",
+ "name" : "network_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "permissions" : {
- "check" : [
- "admin"
- ]
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "method" : {
+ "type" : "string"
},
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "type" : "null"
+ "type" : {
+ "type" : "string"
}
},
- "GET" : {
- "description" : "List the mail queue for a specific domain.",
- "method" : "GET",
- "name" : "mailq",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "filter" : {
- "description" : "Filter string.",
- "maxLength" : 64,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "limit" : {
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- },
- "queue" : {
- "description" : "Postfix queue name.",
- "enum" : [
- "deferred",
- "active",
- "incoming",
- "hold"
- ],
- "type" : "string"
- },
- "start" : {
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- }
- }
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update network device configuration",
+ "method" : "PUT",
+ "name" : "update_network",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "address" : {
+ "description" : "IP address.",
+ "format" : "ipv4",
+ "optional" : 1,
+ "requires" : "netmask",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "address6" : {
+ "description" : "IP address.",
+ "format" : "ipv6",
+ "optional" : 1,
+ "requires" : "netmask6",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "autostart" : {
+ "description" : "Automatically start interface on boot.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "bond-primary" : {
+ "description" : "Specify the primary interface for active-backup bond.",
+ "format" : "pve-iface",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "bond_mode" : {
+ "description" : "Bonding mode.",
+ "enum" : [
+ "balance-rr",
+ "active-backup",
+ "balance-xor",
+ "broadcast",
+ "802.3ad",
+ "balance-tlb",
+ "balance-alb",
+ "balance-slb",
+ "lacp-balance-slb",
+ "lacp-balance-tcp"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "bond_xmit_hash_policy" : {
+ "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
+ "enum" : [
+ "layer2",
+ "layer2+3",
+ "layer3+4"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "bridge_ports" : {
+ "description" : "Specify the interfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "bridge_vlan_aware" : {
+ "description" : "Enable bridge vlan support.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "cidr" : {
+ "description" : "IPv4 CIDR.",
+ "format" : "CIDRv4",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "cidr6" : {
+ "description" : "IPv6 CIDR.",
+ "format" : "CIDRv6",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comments" : {
+ "description" : "Comments",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comments6" : {
+ "description" : "Comments",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "permissions" : {
- "check" : [
- "admin",
- "audit"
- ]
+ "gateway" : {
+ "description" : "Default gateway address.",
+ "format" : "ipv4",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "gateway6" : {
+ "description" : "Default ipv6 gateway address.",
+ "format" : "ipv6",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mtu" : {
+ "description" : "MTU.",
+ "maximum" : 65520,
+ "minimum" : 1280,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1280 - 65520)"
+ },
+ "netmask" : {
+ "description" : "Network mask.",
+ "format" : "ipv4mask",
+ "optional" : 1,
+ "requires" : "address",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "netmask6" : {
+ "description" : "Network mask.",
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "requires" : "address6",
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 128)"
},
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{queue_id}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- }
- }
- },
- "leaf" : 0,
- "path" : "/nodes/{node}/postfix/queue/{queue}",
- "text" : "{queue}"
- }
- ],
- "info" : {
- "DELETE" : {
- "description" : "Delete all mails in all posfix queues.",
- "method" : "DELETE",
- "name" : "delete_all_queues",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
+ },
+ "ovs_bonds" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_bridge" : {
+ "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
+ "format" : "pve-iface",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_options" : {
+ "description" : "OVS interface options.",
+ "maxLength" : 1024,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_ports" : {
+ "description" : "Specify the interfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_tag" : {
+ "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 4094)"
+ },
+ "slaves" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Network interface type",
+ "enum" : [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "unknown"
+ ],
+ "type" : "string"
+ },
+ "vlan-id" : {
+ "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 4094)"
+ },
+ "vlan-raw-device" : {
+ "description" : "Specify the raw interface for the vlan interface.",
+ "format" : "pve-iface",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "permissions" : {
- "check" : [
- "admin"
- ]
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/network/{iface}",
+ "text" : "{iface}"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Revert network configuration changes.",
+ "method" : "DELETE",
+ "name" : "revert_network_changes",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List available networks",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Only list specific interface types.",
+ "enum" : [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "any_bridge"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{iface}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create network device configuration",
+ "method" : "POST",
+ "name" : "create_network",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "address" : {
+ "description" : "IP address.",
+ "format" : "ipv4",
+ "optional" : 1,
+ "requires" : "netmask",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "address6" : {
+ "description" : "IP address.",
+ "format" : "ipv6",
+ "optional" : 1,
+ "requires" : "netmask6",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "autostart" : {
+ "description" : "Automatically start interface on boot.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "description" : "Directory index.",
- "method" : "GET",
- "name" : "queue_index",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- }
- }
+ "bond-primary" : {
+ "description" : "Specify the primary interface for active-backup bond.",
+ "format" : "pve-iface",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "permissions" : {
- "user" : "all"
+ "bond_mode" : {
+ "description" : "Bonding mode.",
+ "enum" : [
+ "balance-rr",
+ "active-backup",
+ "balance-xor",
+ "broadcast",
+ "802.3ad",
+ "balance-tlb",
+ "balance-alb",
+ "balance-slb",
+ "lacp-balance-slb",
+ "lacp-balance-tcp"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
+ "bond_xmit_hash_policy" : {
+ "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
+ "enum" : [
+ "layer2",
+ "layer2+3",
+ "layer3+4"
],
- "type" : "array"
- }
- }
- },
- "leaf" : 0,
- "path" : "/nodes/{node}/postfix/queue",
- "text" : "queue"
- },
- {
- "info" : {
- "POST" : {
- "description" : "Flush the queue: attempt to deliver all queued mail.",
- "method" : "POST",
- "name" : "flush_queues",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- }
- }
+ "optional" : 1,
+ "type" : "string"
},
- "permissions" : {
- "check" : [
- "admin"
- ]
+ "bridge_ports" : {
+ "description" : "Specify the interfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "type" : "null"
- }
- }
- },
- "leaf" : 1,
- "path" : "/nodes/{node}/postfix/flush_queues",
- "text" : "flush_queues"
- },
- {
- "info" : {
- "POST" : {
- "description" : "Discards the address verification cache.",
- "method" : "POST",
- "name" : "discard_verify_cache",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- }
- }
+ "bridge_vlan_aware" : {
+ "description" : "Enable bridge vlan support.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "cidr" : {
+ "description" : "IPv4 CIDR.",
+ "format" : "CIDRv4",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "cidr6" : {
+ "description" : "IPv6 CIDR.",
+ "format" : "CIDRv6",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comments" : {
+ "description" : "Comments",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comments6" : {
+ "description" : "Comments",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "gateway" : {
+ "description" : "Default gateway address.",
+ "format" : "ipv4",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "gateway6" : {
+ "description" : "Default ipv6 gateway address.",
+ "format" : "ipv6",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mtu" : {
+ "description" : "MTU.",
+ "maximum" : 65520,
+ "minimum" : 1280,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1280 - 65520)"
+ },
+ "netmask" : {
+ "description" : "Network mask.",
+ "format" : "ipv4mask",
+ "optional" : 1,
+ "requires" : "address",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "netmask6" : {
+ "description" : "Network mask.",
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "requires" : "address6",
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 128)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_bonds" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_bridge" : {
+ "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
+ "format" : "pve-iface",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_options" : {
+ "description" : "OVS interface options.",
+ "maxLength" : 1024,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_ports" : {
+ "description" : "Specify the interfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_tag" : {
+ "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 4094)"
+ },
+ "slaves" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Network interface type",
+ "enum" : [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "unknown"
+ ],
+ "type" : "string"
},
- "permissions" : {
- "check" : [
- "admin"
- ]
+ "vlan-id" : {
+ "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 4094)"
},
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "type" : "null"
+ "vlan-raw-device" : {
+ "description" : "Specify the raw interface for the vlan interface.",
+ "format" : "pve-iface",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "leaf" : 1,
- "path" : "/nodes/{node}/postfix/discard_verify_cache",
- "text" : "discard_verify_cache"
- }
- ],
- "info" : {
- "GET" : {
- "description" : "Directory index.",
- "method" : "GET",
- "name" : "index",
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Reload network configuration",
+ "method" : "PUT",
+ "name" : "reload_network_config",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
}
}
},
- "permissions" : {
- "user" : "all"
- },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "type" : "array"
+ "type" : "string"
}
}
},
"leaf" : 0,
- "path" : "/nodes/{node}/postfix",
- "text" : "postfix"
+ "path" : "/nodes/{node}/network",
+ "text" : "network"
},
{
"children" : [
{
- "info" : {
- "GET" : {
- "description" : "ClamAV virus database status.",
- "method" : "GET",
- "name" : "database_status",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read task log.",
+ "method" : "GET",
+ "name" : "read_task_log",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "download" : {
+ "description" : "Whether the tasklog file should be downloaded. This parameter can't be used in conjunction with other parameters",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "limit" : {
+ "description" : "The amount of lines to read from the tasklog.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "start" : {
+ "description" : "Start at this line when reading the tasklog",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "upid" : {
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
}
},
- "permissions" : {
- "check" : [
- "admin",
- "audit"
- ]
- },
- "proxyto" : "node",
- "returns" : {
- "items" : {
- "properties" : {
- "build_time" : {
- "type" : "string"
- },
- "nsigs" : {
- "type" : "integer"
- },
- "type" : {
- "type" : "string"
- },
- "version" : {
- "optional" : 1,
- "type" : "string"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/tasks/{upid}/log",
+ "text" : "log"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read task status.",
+ "method" : "GET",
+ "name" : "read_task_status",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "upid" : {
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
},
- "type" : "object"
- },
- "type" : "array"
- }
- },
- "POST" : {
- "description" : "Update ClamAV virus databases.",
- "method" : "POST",
- "name" : "update_database",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "pid" : {
+ "type" : "integer"
+ },
+ "status" : {
+ "enum" : [
+ "running",
+ "stopped"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
}
}
},
- "permissions" : {
- "check" : [
- "admin"
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "type" : "string"
- }
- }
- },
- "leaf" : 1,
- "path" : "/nodes/{node}/clamav/database",
- "text" : "database"
- }
- ],
- "info" : {
- "GET" : {
- "description" : "Directory index.",
- "method" : "GET",
- "name" : "index",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- }
+ "leaf" : 1,
+ "path" : "/nodes/{node}/tasks/{upid}/status",
+ "text" : "status"
}
- },
- "permissions" : {
- "check" : [
- "admin",
- "audit"
- ]
- },
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{subdir}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- }
- }
- },
- "leaf" : 0,
- "path" : "/nodes/{node}/clamav",
- "text" : "clamav"
- },
- {
- "children" : [
- {
+ ],
"info" : {
- "GET" : {
- "description" : "SpamAssassin rules status.",
- "method" : "GET",
- "name" : "rules_status",
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Stop a task.",
+ "method" : "DELETE",
+ "name" : "stop_task",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
+ },
+ "upid" : {
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
"permissions" : {
"check" : [
- "admin",
- "audit"
+ "admin"
]
},
+ "protected" : 1,
"proxyto" : "node",
"returns" : {
- "items" : {
- "properties" : {
- "channel" : {
- "type" : "string"
- },
- "last_updated" : {
- "optional" : 1,
- "type" : "integer"
- },
- "update_avail" : {
- "type" : "boolean"
- },
- "update_version" : {
- "optional" : 1,
- "type" : "string"
- },
- "version" : {
- "optional" : 1,
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array"
+ "type" : "null"
}
},
- "POST" : {
- "description" : "Update SpamAssassin rules.",
- "method" : "POST",
- "name" : "update_rules",
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "",
+ "method" : "GET",
+ "name" : "upid_index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
+ },
+ "upid" : {
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
"permissions" : {
"check" : [
- "admin"
+ "admin",
+ "audit"
]
},
- "protected" : 1,
- "proxyto" : "node",
"returns" : {
- "type" : "string"
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
},
- "leaf" : 1,
- "path" : "/nodes/{node}/spamassassin/rules",
- "text" : "rules"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/tasks/{upid}",
+ "text" : "{upid}"
}
],
"info" : {
"GET" : {
- "description" : "Directory index.",
+ "allowtoken" : 1,
+ "description" : "Read task list for one node (finished tasks).",
"method" : "GET",
- "name" : "index",
+ "name" : "node_tasks",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "errors" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "limit" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
+ },
+ "since" : {
+ "description" : "Only list tasks since this UNIX epoch.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "statusfilter" : {
+ "description" : "List of Task States that should be returned.",
+ "format" : "pve-task-status-type-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "typefilter" : {
+ "description" : "Only list tasks of this type (e.g., aptupdate, saupdate).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "until" : {
+ "description" : "Only list tasks until this UNIX epoch.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "userfilter" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
"audit"
]
},
+ "proxyto" : "node",
"returns" : {
"items" : {
- "properties" : {},
+ "properties" : {
+ "upid" : {
+ "type" : "string"
+ }
+ },
"type" : "object"
},
"links" : [
{
- "href" : "{subdir}",
+ "href" : "{upid}",
"rel" : "child"
}
],
}
},
"leaf" : 0,
- "path" : "/nodes/{node}/spamassassin",
- "text" : "spamassassin"
+ "path" : "/nodes/{node}/tasks",
+ "text" : "tasks"
},
{
"children" : [
{
- "info" : {
- "DELETE" : {
- "description" : "Delete network device configuration",
- "method" : "DELETE",
- "name" : "delete_network",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "iface" : {
- "description" : "Network interface name.",
- "format" : "pve-iface",
- "maxLength" : 20,
- "minLength" : 2,
- "type" : "string",
- "typetext" : "<string>"
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read service properties",
+ "method" : "GET",
+ "name" : "service_state",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "clamav-daemon",
+ "clamav-freshclam",
+ "fetchmail",
+ "pmgproxy",
+ "pmgdaemon",
+ "pmgpolicy",
+ "pmg-smtp-filter",
+ "pmgtunnel",
+ "pmgmirror",
+ "ssh",
+ "rsyslog",
+ "postfix",
+ "postgres",
+ "systemd-timesyncd",
+ "pmg-hourly",
+ "pmg-daily",
+ "pmgreport",
+ "pmgspamreport",
+ "chrony"
+ ],
+ "type" : "string"
+ }
+ }
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- }
- }
- },
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "description" : "Read network device configuration",
- "method" : "GET",
- "name" : "network_config",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "iface" : {
- "description" : "Network interface name.",
- "format" : "pve-iface",
- "maxLength" : 20,
- "minLength" : 2,
- "type" : "string",
- "typetext" : "<string>"
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
}
}
},
- "permissions" : {
- "check" : [
- "admin",
- "audit"
- ]
- },
- "proxyto" : "node",
- "returns" : {
- "properties" : {
- "method" : {
- "type" : "string"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/state",
+ "text" : "state"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Start service.",
+ "method" : "POST",
+ "name" : "service_start",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "clamav-daemon",
+ "clamav-freshclam",
+ "fetchmail",
+ "pmgproxy",
+ "pmgdaemon",
+ "pmgpolicy",
+ "pmg-smtp-filter",
+ "pmgtunnel",
+ "pmgmirror",
+ "ssh",
+ "rsyslog",
+ "postfix",
+ "postgres",
+ "systemd-timesyncd",
+ "pmg-hourly",
+ "pmg-daily",
+ "pmgreport",
+ "pmgspamreport",
+ "chrony"
+ ],
+ "type" : "string"
+ }
+ }
},
- "type" : {
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
}
- },
- "type" : "object"
- }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/start",
+ "text" : "start"
},
- "PUT" : {
- "description" : "Update network device configuration",
- "method" : "PUT",
- "name" : "update_network",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "address" : {
- "description" : "IP address.",
- "format" : "ipv4",
- "optional" : 1,
- "requires" : "netmask",
- "type" : "string",
- "typetext" : "<string>"
- },
- "address6" : {
- "description" : "IP address.",
- "format" : "ipv6",
- "optional" : 1,
- "requires" : "netmask6",
- "type" : "string",
- "typetext" : "<string>"
- },
- "autostart" : {
- "description" : "Automatically start interface on boot.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Stop service.",
+ "method" : "POST",
+ "name" : "service_stop",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "clamav-daemon",
+ "clamav-freshclam",
+ "fetchmail",
+ "pmgproxy",
+ "pmgdaemon",
+ "pmgpolicy",
+ "pmg-smtp-filter",
+ "pmgtunnel",
+ "pmgmirror",
+ "ssh",
+ "rsyslog",
+ "postfix",
+ "postgres",
+ "systemd-timesyncd",
+ "pmg-hourly",
+ "pmg-daily",
+ "pmgreport",
+ "pmgspamreport",
+ "chrony"
+ ],
+ "type" : "string"
+ }
+ }
},
- "bond_mode" : {
- "description" : "Bonding mode.",
- "enum" : [
- "balance-rr",
- "active-backup",
- "balance-xor",
- "broadcast",
- "802.3ad",
- "balance-tlb",
- "balance-alb",
- "balance-slb",
- "lacp-balance-slb",
- "lacp-balance-tcp"
- ],
- "optional" : 1,
- "type" : "string"
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
},
- "bond_xmit_hash_policy" : {
- "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
- "enum" : [
- "layer2",
- "layer2+3",
- "layer3+4"
- ],
- "optional" : 1,
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/stop",
+ "text" : "stop"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Restart service.",
+ "method" : "POST",
+ "name" : "service_restart",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "clamav-daemon",
+ "clamav-freshclam",
+ "fetchmail",
+ "pmgproxy",
+ "pmgdaemon",
+ "pmgpolicy",
+ "pmg-smtp-filter",
+ "pmgtunnel",
+ "pmgmirror",
+ "ssh",
+ "rsyslog",
+ "postfix",
+ "postgres",
+ "systemd-timesyncd",
+ "pmg-hourly",
+ "pmg-daily",
+ "pmgreport",
+ "pmgspamreport",
+ "chrony"
+ ],
+ "type" : "string"
+ }
+ }
},
- "bridge_ports" : {
- "description" : "Specify the iterfaces you want to add to your bridge.",
- "format" : "pve-iface-list",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "bridge_vlan_aware" : {
- "description" : "Enable bridge vlan support.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "comments" : {
- "description" : "Comments",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "comments6" : {
- "description" : "Comments",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "gateway" : {
- "description" : "Default gateway address.",
- "format" : "ipv4",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "gateway6" : {
- "description" : "Default ipv6 gateway address.",
- "format" : "ipv6",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "iface" : {
- "description" : "Network interface name.",
- "format" : "pve-iface",
- "maxLength" : 20,
- "minLength" : 2,
- "type" : "string",
- "typetext" : "<string>"
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
},
- "netmask" : {
- "description" : "Network mask.",
- "format" : "ipv4mask",
- "optional" : 1,
- "requires" : "address",
- "type" : "string",
- "typetext" : "<string>"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/restart",
+ "text" : "restart"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Reload service.",
+ "method" : "POST",
+ "name" : "service_reload",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "clamav-daemon",
+ "clamav-freshclam",
+ "fetchmail",
+ "pmgproxy",
+ "pmgdaemon",
+ "pmgpolicy",
+ "pmg-smtp-filter",
+ "pmgtunnel",
+ "pmgmirror",
+ "ssh",
+ "rsyslog",
+ "postfix",
+ "postgres",
+ "systemd-timesyncd",
+ "pmg-hourly",
+ "pmg-daily",
+ "pmgreport",
+ "pmgspamreport",
+ "chrony"
+ ],
+ "type" : "string"
+ }
+ }
},
- "netmask6" : {
- "description" : "Network mask.",
- "maximum" : 128,
- "minimum" : 0,
- "optional" : 1,
- "requires" : "address6",
- "type" : "integer",
- "typetext" : "<integer> (0 - 128)"
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
},
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/reload",
+ "text" : "reload"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index",
+ "method" : "GET",
+ "name" : "srvcmdidx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
},
- "ovs_bonds" : {
- "description" : "Specify the interfaces used by the bonding device.",
- "format" : "pve-iface-list",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "ovs_bridge" : {
- "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
- "format" : "pve-iface",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "ovs_options" : {
- "description" : "OVS interface options.",
- "maxLength" : 1024,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "ovs_ports" : {
- "description" : "Specify the iterfaces you want to add to your bridge.",
- "format" : "pve-iface-list",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "ovs_tag" : {
- "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
- "maximum" : 4094,
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - 4094)"
- },
- "slaves" : {
- "description" : "Specify the interfaces used by the bonding device.",
- "format" : "pve-iface-list",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "type" : {
- "description" : "Network interface type",
+ "service" : {
+ "description" : "Service ID",
"enum" : [
- "bridge",
- "bond",
- "eth",
- "alias",
- "vlan",
- "OVSBridge",
- "OVSBond",
- "OVSPort",
- "OVSIntPort",
- "unknown"
+ "clamav-daemon",
+ "clamav-freshclam",
+ "fetchmail",
+ "pmgproxy",
+ "pmgdaemon",
+ "pmgpolicy",
+ "pmg-smtp-filter",
+ "pmgtunnel",
+ "pmgmirror",
+ "ssh",
+ "rsyslog",
+ "postfix",
+ "postgres",
+ "systemd-timesyncd",
+ "pmg-hourly",
+ "pmg-daily",
+ "pmgreport",
+ "pmgspamreport",
+ "chrony"
],
"type" : "string"
}
}
},
- "protected" : 1,
- "proxyto" : "node",
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
"returns" : {
- "type" : "null"
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
},
- "leaf" : 1,
- "path" : "/nodes/{node}/network/{iface}",
- "text" : "{iface}"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/services/{service}",
+ "text" : "{service}"
}
],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Service list.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{service}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/services",
+ "text" : "services"
+ },
+ {
"info" : {
"DELETE" : {
- "description" : "Revert network configuration changes.",
+ "allowtoken" : 1,
+ "description" : "Delete subscription key.",
"method" : "DELETE",
- "name" : "revert_network_changes",
+ "name" : "delete",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
}
},
"GET" : {
- "description" : "List available networks",
+ "allowtoken" : 1,
+ "description" : "Read subscription info.",
"method" : "GET",
- "name" : "index",
+ "name" : "get",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
- },
- "type" : {
- "description" : "Only list specific interface types.",
- "enum" : [
- "bridge",
- "bond",
- "eth",
- "alias",
- "vlan",
- "OVSBridge",
- "OVSBond",
- "OVSPort",
- "OVSIntPort",
- "any_bridge"
- ],
- "optional" : 1,
- "type" : "string"
}
}
},
"permissions" : {
"check" : [
"admin",
- "audit"
+ "qmanager",
+ "audit",
+ "quser"
]
},
"proxyto" : "node",
"returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{iface}",
- "rel" : "child"
- }
- ],
- "type" : "array"
+ "type" : "object"
}
},
"POST" : {
- "description" : "Create network device configuration",
+ "allowtoken" : 1,
+ "description" : "Update subscription info.",
"method" : "POST",
- "name" : "create_network",
+ "name" : "update",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "address" : {
- "description" : "IP address.",
- "format" : "ipv4",
- "optional" : 1,
- "requires" : "netmask",
- "type" : "string",
- "typetext" : "<string>"
- },
- "address6" : {
- "description" : "IP address.",
- "format" : "ipv6",
- "optional" : 1,
- "requires" : "netmask6",
- "type" : "string",
- "typetext" : "<string>"
- },
- "autostart" : {
- "description" : "Automatically start interface on boot.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "bond_mode" : {
- "description" : "Bonding mode.",
- "enum" : [
- "balance-rr",
- "active-backup",
- "balance-xor",
- "broadcast",
- "802.3ad",
- "balance-tlb",
- "balance-alb",
- "balance-slb",
- "lacp-balance-slb",
- "lacp-balance-tcp"
- ],
- "optional" : 1,
- "type" : "string"
- },
- "bond_xmit_hash_policy" : {
- "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
- "enum" : [
- "layer2",
- "layer2+3",
- "layer3+4"
- ],
- "optional" : 1,
- "type" : "string"
- },
- "bridge_ports" : {
- "description" : "Specify the iterfaces you want to add to your bridge.",
- "format" : "pve-iface-list",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "bridge_vlan_aware" : {
- "description" : "Enable bridge vlan support.",
+ "force" : {
+ "default" : 0,
+ "description" : "Always connect to server, even if we have up to date info inside local cache.",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
},
- "comments" : {
- "description" : "Comments",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "comments6" : {
- "description" : "Comments",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "gateway" : {
- "description" : "Default gateway address.",
- "format" : "ipv4",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "gateway6" : {
- "description" : "Default ipv6 gateway address.",
- "format" : "ipv6",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "iface" : {
- "description" : "Network interface name.",
- "format" : "pve-iface",
- "maxLength" : 20,
- "minLength" : 2,
- "type" : "string",
- "typetext" : "<string>"
- },
- "netmask" : {
- "description" : "Network mask.",
- "format" : "ipv4mask",
- "optional" : 1,
- "requires" : "address",
- "type" : "string",
- "typetext" : "<string>"
- },
- "netmask6" : {
- "description" : "Network mask.",
- "maximum" : 128,
- "minimum" : 0,
- "optional" : 1,
- "requires" : "address6",
- "type" : "integer",
- "typetext" : "<integer> (0 - 128)"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set subscription key.",
+ "method" : "PUT",
+ "name" : "set",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "key" : {
+ "description" : "Proxmox Mail Gateway subscription key",
+ "maxLength" : 32,
+ "pattern" : "pmg([cbsp])-[0-9a-f]{10}",
+ "type" : "string"
},
- "ovs_bonds" : {
- "description" : "Specify the interfaces used by the bonding device.",
- "format" : "pve-iface-list",
- "optional" : 1,
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
+ }
+ }
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/subscription",
+ "text" : "subscription"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List available updates.",
+ "method" : "GET",
+ "name" : "list_updates",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "ovs_bridge" : {
- "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
- "format" : "pve-iface",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
},
- "ovs_options" : {
- "description" : "OVS interface options.",
- "maxLength" : 1024,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
+ "method" : "POST",
+ "name" : "update_database",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "notify" : {
+ "default" : 0,
+ "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "quiet" : {
+ "default" : 0,
+ "description" : "Only produces output suitable for logging, omitting progress indicators.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
},
- "ovs_ports" : {
- "description" : "Specify the iterfaces you want to add to your bridge.",
- "format" : "pve-iface-list",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
},
- "ovs_tag" : {
- "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
- "maximum" : 4094,
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - 4094)"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/apt/update",
+ "text" : "update"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get package changelogs.",
+ "method" : "GET",
+ "name" : "changelog",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "Package name.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "version" : {
+ "description" : "Package version.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "slaves" : {
- "description" : "Specify the interfaces used by the bonding device.",
- "format" : "pve-iface-list",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
},
- "type" : {
- "description" : "Network interface type",
- "enum" : [
- "bridge",
- "bond",
- "eth",
- "alias",
- "vlan",
- "OVSBridge",
- "OVSBond",
- "OVSPort",
- "OVSIntPort",
- "unknown"
- ],
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
}
}
},
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "type" : "null"
- }
- }
- },
- "leaf" : 0,
- "path" : "/nodes/{node}/network",
- "text" : "network"
- },
- {
- "children" : [
+ "leaf" : 1,
+ "path" : "/nodes/{node}/apt/changelog",
+ "text" : "changelog"
+ },
{
- "children" : [
- {
- "info" : {
- "GET" : {
- "description" : "Read task log.",
- "method" : "GET",
- "name" : "read_task_log",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "limit" : {
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get APT repository information.",
+ "method" : "GET",
+ "name" : "repositories",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Result from parsing the APT repository files in /etc/apt/.",
+ "properties" : {
+ "digest" : {
+ "description" : "Common digest of all files.",
+ "type" : "string"
+ },
+ "errors" : {
+ "description" : "List of problematic repository files.",
+ "items" : {
+ "properties" : {
+ "error" : {
+ "description" : "The error message",
+ "type" : "string"
+ },
+ "path" : {
+ "description" : "Path to the problematic file.",
+ "type" : "string"
+ }
},
- "start" : {
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
+ "type" : "object"
+ },
+ "type" : "array"
+ },
+ "files" : {
+ "description" : "List of parsed repository files.",
+ "items" : {
+ "properties" : {
+ "digest" : {
+ "description" : "Digest of the file as bytes.",
+ "items" : {
+ "type" : "integer"
+ },
+ "type" : "array"
+ },
+ "file-type" : {
+ "description" : "Format of the file.",
+ "enum" : [
+ "list",
+ "sources"
+ ],
+ "type" : "string"
+ },
+ "path" : {
+ "description" : "Path to the problematic file.",
+ "type" : "string"
+ },
+ "repositories" : {
+ "description" : "The parsed repositories.",
+ "items" : {
+ "properties" : {
+ "Comment" : {
+ "description" : "Associated comment",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "Components" : {
+ "description" : "List of repository components",
+ "items" : {
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "Enabled" : {
+ "description" : "Whether the repository is enabled or not",
+ "type" : "boolean"
+ },
+ "FileType" : {
+ "description" : "Format of the defining file.",
+ "enum" : [
+ "list",
+ "sources"
+ ],
+ "type" : "string"
+ },
+ "Options" : {
+ "description" : "Additional options",
+ "items" : {
+ "properties" : {
+ "Key" : {
+ "type" : "string"
+ },
+ "Values" : {
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "Suites" : {
+ "description" : "List of package distribuitions",
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
+ },
+ "Types" : {
+ "description" : "List of package types.",
+ "items" : {
+ "enum" : [
+ "deb",
+ "deb-src"
+ ],
+ "type" : "string"
+ },
+ "type" : "array"
+ },
+ "URIs" : {
+ "description" : "List of repository URIs.",
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
},
- "upid" : {
- "type" : "string",
- "typetext" : "<string>"
- }
- }
+ "type" : "object"
+ },
+ "type" : "array"
},
- "permissions" : {
- "check" : [
- "admin",
- "audit"
- ]
+ "infos" : {
+ "description" : "Additional information/warnings for APT repositories.",
+ "items" : {
+ "properties" : {
+ "index" : {
+ "description" : "Index of the associated repository within the file.",
+ "type" : "string"
+ },
+ "kind" : {
+ "description" : "Kind of the information (e.g. warning).",
+ "type" : "string"
+ },
+ "message" : {
+ "description" : "Information message.",
+ "type" : "string"
+ },
+ "path" : {
+ "description" : "Path to the associated file.",
+ "type" : "string"
+ },
+ "property" : {
+ "description" : "Property from which the info originates.",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
},
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
+ "standard-repos" : {
+ "description" : "List of standard repositories and their configuration status",
"items" : {
"properties" : {
- "n" : {
- "description" : "Line number",
- "type" : "integer"
+ "description" : {
+ "description" : "Description of the repository.",
+ "type" : "string"
},
- "t" : {
- "description" : "Line text",
+ "handle" : {
+ "description" : "Handle to identify the repository.",
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "Display name of the repository.",
"type" : "string"
+ },
+ "status" : {
+ "description" : "Indicating enabled/disabled status, if the repository is configured.",
+ "optional" : 1,
+ "type" : "boolean"
}
},
"type" : "object"
},
"type" : "array"
}
+ },
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Change the properties of a repository. Currently only allows enabling/disabling.",
+ "method" : "POST",
+ "name" : "change_repository",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Digest to detect modifications.",
+ "maxLength" : 80,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enabled" : {
+ "description" : "Whether the repository should be enabled or not.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "index" : {
+ "description" : "Index within the file (starting from 0).",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "path" : {
+ "description" : "Path to the containing file.",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
},
- "leaf" : 1,
- "path" : "/nodes/{node}/tasks/{upid}/log",
- "text" : "log"
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
},
- {
- "info" : {
- "GET" : {
- "description" : "Read task status.",
- "method" : "GET",
- "name" : "read_task_status",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- },
- "upid" : {
- "type" : "string",
- "typetext" : "<string>"
- }
- }
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Add a standard repository to the configuration",
+ "method" : "PUT",
+ "name" : "add_repository",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Digest to detect modifications.",
+ "maxLength" : 80,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "permissions" : {
- "check" : [
- "admin",
- "audit"
- ]
+ "handle" : {
+ "description" : "Handle that identifies a repository.",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "properties" : {
- "pid" : {
- "type" : "integer"
- },
- "status" : {
- "enum" : [
- "running",
- "stopped"
- ],
- "type" : "string"
- }
- },
- "type" : "object"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "leaf" : 1,
- "path" : "/nodes/{node}/tasks/{upid}/status",
- "text" : "status"
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
- ],
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/apt/repositories",
+ "text" : "repositories"
+ },
+ {
"info" : {
- "DELETE" : {
- "description" : "Stop a task.",
- "method" : "DELETE",
- "name" : "stop_task",
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get package information for important Proxmox packages.",
+ "method" : "GET",
+ "name" : "versions",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
- },
- "upid" : {
- "type" : "string",
- "typetext" : "<string>"
}
}
},
"permissions" : {
"check" : [
- "admin"
+ "admin",
+ "audit"
]
},
- "protected" : 1,
"proxyto" : "node",
"returns" : {
- "type" : "null"
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/apt/versions",
+ "text" : "versions"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index for apt (Advanced Package Tool).",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
},
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/apt",
+ "text" : "apt"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
"GET" : {
- "description" : "",
+ "allowtoken" : 1,
+ "description" : "Get the detailed syslog entries for a specific mail ID.",
"method" : "GET",
- "name" : "upid_index",
+ "name" : "maillog",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "endtime" : {
+ "description" : "Only consider entries older than 'endtime' (unix epoch). This is set to '<start> + 1day' by default.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "id" : {
+ "description" : "Mail ID (as returned by the list API).",
+ "maxLength" : 64,
+ "minLength" : 3,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
},
- "upid" : {
- "type" : "string",
- "typetext" : "<string>"
+ "starttime" : {
+ "description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "client" : {
+ "description" : "Client address",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dstatus" : {
+ "description" : "Delivery status.",
+ "maxLength" : 1,
+ "minLength" : 1,
+ "type" : "string"
+ },
+ "from" : {
+ "description" : "Sender email address.",
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "Unique ID.",
+ "type" : "string"
+ },
+ "logs" : {
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
+ },
+ "msgid" : {
+ "description" : "SMTP message ID.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "qid" : {
+ "description" : "Postfix qmgr ID.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "relay" : {
+ "description" : "ID of relayed mail.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "rstatus" : {
+ "description" : "Delivery status of relayed mail.",
+ "maxLength" : 1,
+ "minLength" : 1,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "The size of the raw email.",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "time" : {
+ "description" : "Delivery timestamp.",
+ "type" : "integer"
+ },
+ "to" : {
+ "description" : "Receiver email address.",
+ "type" : "string"
}
- }
- },
- "permissions" : {
- "check" : [
- "admin",
- "audit"
- ]
- },
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
},
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "type" : "array"
+ "type" : "object"
}
}
},
- "leaf" : 0,
- "path" : "/nodes/{node}/tasks/{upid}",
- "text" : "{upid}"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/tracker/{id}",
+ "text" : "{id}"
}
],
"info" : {
"GET" : {
- "description" : "Read task list for one node (finished tasks).",
+ "allowtoken" : 1,
+ "description" : "Read mail list.",
"method" : "GET",
- "name" : "node_tasks",
+ "name" : "list_mails",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "errors" : {
+ "endtime" : {
+ "description" : "Only consider entries older than 'endtime' (unix epoch). This is set to '<start> + 1day' by default.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "from" : {
+ "description" : "Sender email address filter.",
+ "maxLength" : 256,
+ "minLength" : 1,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "greylist" : {
+ "default" : 0,
+ "description" : "Include Greylisted entries.",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
},
- "limit" : {
- "minimum" : 0,
+ "ndr" : {
+ "default" : 0,
+ "description" : "Include NDRs (non delivery reports).",
"optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"node" : {
"description" : "The cluster node name.",
"type" : "string",
"typetext" : "<string>"
},
- "start" : {
+ "starttime" : {
+ "description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
"minimum" : 0,
"optional" : 1,
"type" : "integer",
"typetext" : "<integer> (0 - N)"
},
- "userfilter" : {
+ "target" : {
+ "description" : "Receiver email address filter.",
+ "maxLength" : 256,
+ "minLength" : 1,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "xfilter" : {
+ "description" : "Only include mails containing this filter string.",
+ "maxLength" : 256,
+ "minLength" : 1,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"audit"
]
},
+ "protected" : 1,
"proxyto" : "node",
"returns" : {
"items" : {
"properties" : {
- "upid" : {
+ "client" : {
+ "description" : "Client address",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dstatus" : {
+ "description" : "Delivery status.",
+ "maxLength" : 1,
+ "minLength" : 1,
+ "type" : "string"
+ },
+ "from" : {
+ "description" : "Sender email address.",
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "Unique ID.",
+ "type" : "string"
+ },
+ "msgid" : {
+ "description" : "SMTP message ID.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "qid" : {
+ "description" : "Postfix qmgr ID.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "relay" : {
+ "description" : "ID of relayed mail.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "rstatus" : {
+ "description" : "Delivery status of relayed mail.",
+ "maxLength" : 1,
+ "minLength" : 1,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "The size of the raw email.",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "time" : {
+ "description" : "Delivery timestamp.",
+ "type" : "integer"
+ },
+ "to" : {
+ "description" : "Receiver email address.",
"type" : "string"
}
},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{upid}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- }
- }
- },
- "leaf" : 0,
- "path" : "/nodes/{node}/tasks",
- "text" : "tasks"
- },
- {
- "children" : [
- {
- "children" : [
- {
- "info" : {
- "GET" : {
- "description" : "Read service properties",
- "method" : "GET",
- "name" : "service_state",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- },
- "service" : {
- "description" : "Service ID",
- "enum" : [
- "clamav-daemon",
- "clamav-freshclam",
- "fetchmail",
- "pmgproxy",
- "pmgdaemon",
- "pmgpolicy",
- "pmg-smtp-filter",
- "pmgtunnel",
- "pmgmirror",
- "ssh",
- "rsyslog",
- "postfix",
- "postgres",
- "systemd-timesyncd",
- "pmg-hourly",
- "pmg-daily",
- "pmgreport",
- "pmgspamreport"
- ],
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "check" : [
- "admin",
- "audit"
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "properties" : {},
- "type" : "object"
- }
- }
- },
- "leaf" : 1,
- "path" : "/nodes/{node}/services/{service}/state",
- "text" : "state"
- },
- {
- "info" : {
- "POST" : {
- "description" : "Start service.",
- "method" : "POST",
- "name" : "service_start",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- },
- "service" : {
- "description" : "Service ID",
- "enum" : [
- "clamav-daemon",
- "clamav-freshclam",
- "fetchmail",
- "pmgproxy",
- "pmgdaemon",
- "pmgpolicy",
- "pmg-smtp-filter",
- "pmgtunnel",
- "pmgmirror",
- "ssh",
- "rsyslog",
- "postfix",
- "postgres",
- "systemd-timesyncd",
- "pmg-hourly",
- "pmg-daily",
- "pmgreport",
- "pmgspamreport"
- ],
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "check" : [
- "admin"
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "type" : "string"
- }
- }
- },
- "leaf" : 1,
- "path" : "/nodes/{node}/services/{service}/start",
- "text" : "start"
+ "type" : "object"
},
- {
- "info" : {
- "POST" : {
- "description" : "Stop service.",
- "method" : "POST",
- "name" : "service_stop",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- },
- "service" : {
- "description" : "Service ID",
- "enum" : [
- "clamav-daemon",
- "clamav-freshclam",
- "fetchmail",
- "pmgproxy",
- "pmgdaemon",
- "pmgpolicy",
- "pmg-smtp-filter",
- "pmgtunnel",
- "pmgmirror",
- "ssh",
- "rsyslog",
- "postfix",
- "postgres",
- "systemd-timesyncd",
- "pmg-hourly",
- "pmg-daily",
- "pmgreport",
- "pmgspamreport"
- ],
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "check" : [
- "admin"
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/tracker",
+ "text" : "tracker"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete a backup file.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "filename" : {
+ "description" : "The backup file name.",
+ "maxLength" : 256,
+ "minLength" : 4,
+ "pattern" : "pmg-backup_[0-9A-Za-z_-]+\\.tgz",
"type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "leaf" : 1,
- "path" : "/nodes/{node}/services/{service}/stop",
- "text" : "stop"
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
},
- {
- "info" : {
- "POST" : {
- "description" : "Restart service.",
- "method" : "POST",
- "name" : "service_restart",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- },
- "service" : {
- "description" : "Service ID",
- "enum" : [
- "clamav-daemon",
- "clamav-freshclam",
- "fetchmail",
- "pmgproxy",
- "pmgdaemon",
- "pmgpolicy",
- "pmg-smtp-filter",
- "pmgtunnel",
- "pmgmirror",
- "ssh",
- "rsyslog",
- "postfix",
- "postgres",
- "systemd-timesyncd",
- "pmg-hourly",
- "pmg-daily",
- "pmgreport",
- "pmgspamreport"
- ],
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "check" : [
- "admin"
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Download a backup file.",
+ "download" : 1,
+ "method" : "GET",
+ "name" : "download",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "filename" : {
+ "description" : "The backup file name.",
+ "maxLength" : 256,
+ "minLength" : 4,
+ "pattern" : "pmg-backup_[0-9A-Za-z_-]+\\.tgz",
"type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "leaf" : 1,
- "path" : "/nodes/{node}/services/{service}/restart",
- "text" : "restart"
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
},
- {
- "info" : {
- "POST" : {
- "description" : "Reload service.",
- "method" : "POST",
- "name" : "service_reload",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- },
- "service" : {
- "description" : "Service ID",
- "enum" : [
- "clamav-daemon",
- "clamav-freshclam",
- "fetchmail",
- "pmgproxy",
- "pmgdaemon",
- "pmgpolicy",
- "pmg-smtp-filter",
- "pmgtunnel",
- "pmgmirror",
- "ssh",
- "rsyslog",
- "postfix",
- "postgres",
- "systemd-timesyncd",
- "pmg-hourly",
- "pmg-daily",
- "pmgreport",
- "pmgspamreport"
- ],
- "type" : "string"
- }
- }
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Restore the system configuration.",
+ "method" : "POST",
+ "name" : "restore",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "config" : {
+ "default" : 0,
+ "description" : "Restore system configuration.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "permissions" : {
- "check" : [
- "admin"
- ]
+ "database" : {
+ "default" : 1,
+ "description" : "Restore the rule database. This is the default.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
+ "filename" : {
+ "description" : "The backup file name.",
+ "maxLength" : 256,
+ "minLength" : 4,
+ "pattern" : "pmg-backup_[0-9A-Za-z_-]+\\.tgz",
"type" : "string"
- }
- }
- },
- "leaf" : 1,
- "path" : "/nodes/{node}/services/{service}/reload",
- "text" : "reload"
- }
- ],
- "info" : {
- "GET" : {
- "description" : "Directory index",
- "method" : "GET",
- "name" : "srvcmdidx",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
+ },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
},
- "service" : {
- "description" : "Service ID",
- "enum" : [
- "clamav-daemon",
- "clamav-freshclam",
- "fetchmail",
- "pmgproxy",
- "pmgdaemon",
- "pmgpolicy",
- "pmg-smtp-filter",
- "pmgtunnel",
- "pmgmirror",
- "ssh",
- "rsyslog",
- "postfix",
- "postgres",
- "systemd-timesyncd",
- "pmg-hourly",
- "pmg-daily",
- "pmgreport",
- "pmgspamreport"
- ],
- "type" : "string"
+ "statistic" : {
+ "default" : 0,
+ "description" : "Restore statistic databases. Only considered when you restore the 'database'.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
}
},
"permissions" : {
"check" : [
- "admin",
- "audit"
+ "admin"
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "items" : {
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{subdir}",
- "rel" : "child"
- }
- ],
- "type" : "array"
+ "type" : "string"
}
}
},
- "leaf" : 0,
- "path" : "/nodes/{node}/services/{service}",
- "text" : "{service}"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/backup/{filename}",
+ "text" : "{filename}"
}
],
"info" : {
"GET" : {
- "description" : "Service list.",
+ "allowtoken" : 1,
+ "description" : "List all stored backups (files named proxmox-backup_{DATE}.tgz).",
"method" : "GET",
- "name" : "index",
+ "name" : "list",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"proxyto" : "node",
"returns" : {
"items" : {
- "properties" : {},
+ "properties" : {
+ "filename" : {
+ "description" : "The backup file name.",
+ "maxLength" : 256,
+ "minLength" : 4,
+ "pattern" : "pmg-backup_[0-9A-Za-z_-]+\\.tgz",
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "Size of backup file in bytes.",
+ "type" : "integer"
+ },
+ "timestamp" : {
+ "description" : "Backup timestamp (Unix epoch).",
+ "type" : "integer"
+ }
+ },
"type" : "object"
},
"links" : [
{
- "href" : "{service}",
+ "href" : "{filename}",
"rel" : "child"
}
],
"type" : "array"
}
- }
- },
- "leaf" : 0,
- "path" : "/nodes/{node}/services",
- "text" : "services"
- },
- {
- "info" : {
- "GET" : {
- "description" : "Read subscription info.",
- "method" : "GET",
- "name" : "get",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "admin",
- "qmanager",
- "audit",
- "quser"
- ]
- },
- "proxyto" : "node",
- "returns" : {
- "type" : "object"
- }
},
"POST" : {
- "description" : "Update subscription info.",
+ "allowtoken" : 1,
+ "description" : "Backup the system configuration.",
"method" : "POST",
- "name" : "update",
+ "name" : "backup",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "force" : {
- "default" : 0,
- "description" : "Always connect to server, even if we have up to date info inside local cache.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
+ },
+ "notify" : {
+ "default" : "never",
+ "description" : "Specify when to notify via e-mail",
+ "enum" : [
+ "always",
+ "error",
+ "never"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "statistic" : {
+ "default" : 1,
+ "description" : "Backup statistic databases.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
}
},
"protected" : 1,
"proxyto" : "node",
"returns" : {
- "type" : "null"
- }
- },
- "PUT" : {
- "description" : "Set subscription key.",
- "method" : "PUT",
- "name" : "set",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "key" : {
- "description" : "Proxmox Mail Gateway subscription key",
- "maxLength" : 32,
- "pattern" : "pmg([cbsp])-[0-9a-f]{10}",
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- }
- }
- },
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "type" : "null"
+ "type" : "string"
}
}
},
- "leaf" : 1,
- "path" : "/nodes/{node}/subscription",
- "text" : "subscription"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/backup",
+ "text" : "backup"
},
{
"children" : [
{
- "info" : {
- "GET" : {
- "description" : "List available updates.",
- "method" : "GET",
- "name" : "list_updates",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- }
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Forget a snapshot",
+ "method" : "DELETE",
+ "name" : "forget_snapshot",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "backup-id" : {
+ "description" : "ID (hostname) of backup snapshot",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "backup-time" : {
+ "description" : "Backup time in RFC 3339 format",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "remote" : {
+ "description" : "Proxmox Backup Server ID.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Restore the system configuration.",
+ "method" : "POST",
+ "name" : "restore",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "backup-id" : {
+ "description" : "backup-id (hostname) of backup snapshot",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "backup-time" : {
+ "description" : "backup-time to restore",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "config" : {
+ "default" : 0,
+ "description" : "Restore system configuration.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "database" : {
+ "default" : 1,
+ "description" : "Restore the rule database. This is the default.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "remote" : {
+ "description" : "Proxmox Backup Server ID.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "statistic" : {
+ "default" : 0,
+ "description" : "Restore statistic databases. Only considered when you restore the 'database'.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/pbs/{remote}/snapshot/{backup-id}/{backup-time}",
+ "text" : "{backup-time}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get snapshots from a specific ID stored on remote.",
+ "method" : "GET",
+ "name" : "get_group_snapshots",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "backup-id" : {
+ "description" : "ID (hostname) of backup snapshot",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "remote" : {
+ "description" : "Proxmox Backup Server ID.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "backup-id" : {
+ "type" : "string"
+ },
+ "backup-time" : {
+ "type" : "string"
+ },
+ "ctime" : {
+ "type" : "string"
+ },
+ "size" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{backup-time}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/pbs/{remote}/snapshot/{backup-id}",
+ "text" : "{backup-id}"
}
- },
- "permissions" : {
- "check" : [
- "admin",
- "audit"
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get snapshots stored on remote.",
+ "method" : "GET",
+ "name" : "get_snapshots",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "remote" : {
+ "description" : "Proxmox Backup Server ID.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "backup-id" : {
+ "type" : "string"
+ },
+ "backup-time" : {
+ "type" : "string"
+ },
+ "ctime" : {
+ "type" : "string"
+ },
+ "size" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{backup-id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
},
- "type" : "array"
- }
- },
- "POST" : {
- "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
- "method" : "POST",
- "name" : "update_database",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a new backup and prune the backup group afterwards, if configured.",
+ "method" : "POST",
+ "name" : "run_backup",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "notify" : {
+ "default" : "never",
+ "description" : "Specify when to notify via e-mail",
+ "enum" : [
+ "always",
+ "error",
+ "never"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "remote" : {
+ "description" : "Proxmox Backup Server ID.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "statistic" : {
+ "default" : 1,
+ "description" : "Backup statistic databases.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
},
- "notify" : {
- "default" : 0,
- "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
},
- "quiet" : {
- "default" : 0,
- "description" : "Only produces output suitable for logging, omitting progress indicators.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
}
},
- "permissions" : {
- "check" : [
- "admin"
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "type" : "string"
- }
- }
- },
- "leaf" : 1,
- "path" : "/nodes/{node}/apt/update",
- "text" : "update"
- },
- {
- "info" : {
- "GET" : {
- "description" : "Get package changelogs.",
- "method" : "GET",
- "name" : "changelog",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "description" : "Package name.",
- "type" : "string",
- "typetext" : "<string>"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/pbs/{remote}/snapshot",
+ "text" : "snapshot"
+ },
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete backup schedule",
+ "method" : "DELETE",
+ "name" : "delete_timer",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "remote" : {
+ "description" : "Proxmox Backup Server ID.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get timer specification",
+ "method" : "GET",
+ "name" : "list_timer",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "remote" : {
+ "description" : "Proxmox Backup Server ID.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "delay" : {
+ "default" : "5min",
+ "description" : "Randomized delay to add to the starttime (RandomizedDelaySec setting of the systemd.timer)",
+ "optional" : 1,
+ "pattern" : "[0-9a-zA-Z. ]+",
+ "type" : "string"
+ },
+ "next-run" : {
+ "description" : "The date time of the next run, in server locale.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "remote" : {
+ "description" : "Proxmox Backup Server remote ID.",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "schedule" : {
+ "default" : "daily",
+ "description" : "Schedule for the backup (OnCalendar setting of the systemd.timer)",
+ "optional" : 1,
+ "pattern" : "[0-9a-zA-Z*.:,\\-/ ]+",
+ "type" : "string"
+ },
+ "unitfile" : {
+ "description" : "unit file for the systemd.timer unit",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create backup schedule",
+ "method" : "POST",
+ "name" : "create_timer",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "delay" : {
+ "default" : "5min",
+ "description" : "Randomized delay to add to the starttime (RandomizedDelaySec setting of the systemd.timer)",
+ "optional" : 1,
+ "pattern" : "[0-9a-zA-Z. ]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "remote" : {
+ "description" : "Proxmox Backup Server ID.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "schedule" : {
+ "default" : "daily",
+ "description" : "Schedule for the backup (OnCalendar setting of the systemd.timer)",
+ "optional" : 1,
+ "pattern" : "[0-9a-zA-Z*.:,\\-/ ]+",
+ "type" : "string"
+ }
+ }
},
- "version" : {
- "description" : "Package version.",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
},
- "permissions" : {
- "check" : [
- "admin",
- "audit"
- ]
- },
- "proxyto" : "node",
- "returns" : {
- "type" : "string"
- }
+ "leaf" : 1,
+ "path" : "/nodes/{node}/pbs/{remote}/timer",
+ "text" : "timer"
}
- },
- "leaf" : 1,
- "path" : "/nodes/{node}/apt/changelog",
- "text" : "changelog"
- },
- {
+ ],
"info" : {
"GET" : {
- "description" : "Get package information for important Proxmox packages.",
+ "allowtoken" : 1,
+ "description" : "Backup Job index.",
"method" : "GET",
- "name" : "versions",
+ "name" : "remote_index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "admin",
- "audit"
- ]
- },
- "proxyto" : "node",
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "type" : "array"
- }
- }
- },
- "leaf" : 1,
- "path" : "/nodes/{node}/apt/versions",
- "text" : "versions"
- }
- ],
- "info" : {
- "GET" : {
- "description" : "Directory index for apt (Advanced Package Tool).",
- "method" : "GET",
- "name" : "index",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- }
- }
- },
- "permissions" : {
- "user" : "all"
- },
- "returns" : {
- "items" : {
- "properties" : {
- "id" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{id}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- }
- }
- },
- "leaf" : 0,
- "path" : "/nodes/{node}/apt",
- "text" : "apt"
- },
- {
- "children" : [
- {
- "info" : {
- "GET" : {
- "description" : "Get the detailed syslog entries for a specific mail ID.",
- "method" : "GET",
- "name" : "maillog",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "endtime" : {
- "description" : "Only consider entries older than 'endtime' (unix epoch). This is set to '<start> + 1day' by default.",
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - N)"
- },
- "id" : {
- "description" : "Mail ID (as returend by the list API).",
- "maxLength" : 64,
- "minLength" : 3,
- "type" : "string",
- "typetext" : "<string>"
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "remote" : {
+ "description" : "Proxmox Backup Server ID.",
+ "format" : "pve-configid",
"type" : "string",
"typetext" : "<string>"
- },
- "starttime" : {
- "description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
}
}
},
- "permissions" : {
- "check" : [
- "admin",
- "audit"
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
"returns" : {
- "properties" : {
- "client" : {
- "description" : "Client address",
- "optional" : 1,
- "type" : "string"
- },
- "dstatus" : {
- "description" : "Delivery status.",
- "maxLength" : 1,
- "minLength" : 1,
- "type" : "string"
- },
- "from" : {
- "description" : "Sender email address.",
- "type" : "string"
- },
- "id" : {
- "description" : "Unique ID.",
- "type" : "string"
- },
- "logs" : {
- "items" : {
+ "items" : {
+ "properties" : {
+ "section" : {
"type" : "string"
- },
- "type" : "array"
- },
- "msgid" : {
- "description" : "SMTP message ID.",
- "optional" : 1,
- "type" : "string"
- },
- "qid" : {
- "description" : "Postfix qmgr ID.",
- "optional" : 1,
- "type" : "string"
- },
- "relay" : {
- "description" : "ID of relayed mail.",
- "optional" : 1,
- "type" : "string"
- },
- "rstatus" : {
- "description" : "Delivery status of relayed mail.",
- "maxLength" : 1,
- "minLength" : 1,
- "optional" : 1,
- "type" : "string"
- },
- "size" : {
- "description" : "The size of the raw email.",
- "optional" : 1,
- "type" : "number"
- },
- "time" : {
- "description" : "Delivery timestamp.",
- "type" : "integer"
+ }
},
- "to" : {
- "description" : "Receiver email address.",
- "type" : "string"
- }
+ "type" : "object"
},
- "type" : "object"
- }
- }
- },
- "leaf" : 1,
- "path" : "/nodes/{node}/tracker/{id}",
- "text" : "{id}"
- }
- ],
- "info" : {
- "GET" : {
- "description" : "Read mail list.",
- "method" : "GET",
- "name" : "list_mails",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "endtime" : {
- "description" : "Only consider entries older than 'endtime' (unix epoch). This is set to '<start> + 1day' by default.",
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - N)"
- },
- "from" : {
- "description" : "Sender email address filter.",
- "maxLength" : 256,
- "minLength" : 1,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "greylist" : {
- "default" : 0,
- "description" : "Include Greylisted entries.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "ndr" : {
- "default" : 0,
- "description" : "Include NDRs (non delivery reports).",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
+ "links" : [
+ {
+ "href" : "{section}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/pbs/{remote}",
+ "text" : "{remote}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List all configured Proxmox Backup Server jobs.",
+ "method" : "GET",
+ "name" : "list",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
- },
- "starttime" : {
- "description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "target" : {
- "description" : "Receiver email address filter.",
- "maxLength" : 256,
- "minLength" : 1,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "xfilter" : {
- "description" : "Only include mails containing this filter string.",
- "maxLength" : 256,
- "minLength" : 1,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
}
}
},
"proxyto" : "node",
"returns" : {
"items" : {
+ "additionalProperties" : 0,
"properties" : {
- "client" : {
- "description" : "Client address",
- "optional" : 1,
+ "datastore" : {
+ "description" : "Proxmox Backup Server datastore name.",
+ "optional" : 0,
+ "pattern" : "(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)",
"type" : "string"
},
- "dstatus" : {
- "description" : "Delivery status.",
- "maxLength" : 1,
- "minLength" : 1,
- "type" : "string"
+ "disable" : {
+ "description" : "Flag to disable (deactivate) the entry.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "from" : {
- "description" : "Sender email address.",
+ "fingerprint" : {
+ "description" : "Certificate SHA 256 fingerprint.",
+ "optional" : 1,
+ "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
"type" : "string"
},
- "id" : {
- "description" : "Unique ID.",
- "type" : "string"
+ "include-statistics" : {
+ "description" : "Include statistics in scheduled backups",
+ "optional" : 1,
+ "type" : "boolean"
},
- "msgid" : {
- "description" : "SMTP message ID.",
+ "keep-daily" : {
+ "description" : "Keep backups for the last <N> different days. If there is more than one backup for a single day, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
"optional" : 1,
- "type" : "string"
+ "type" : "integer"
},
- "qid" : {
- "description" : "Postfix qmgr ID.",
+ "keep-hourly" : {
+ "description" : "Keep backups for the last <N> different hours. If there is more than one backup for a single hour, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
"optional" : 1,
- "type" : "string"
+ "type" : "integer"
},
- "relay" : {
- "description" : "ID of relayed mail.",
+ "keep-last" : {
+ "description" : "Keep the last <N> backups.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "keep-monthly" : {
+ "description" : "Keep backups for the last <N> different months. If there is more than one backup for a single month, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "keep-weekly" : {
+ "description" : "Keep backups for the last <N> different weeks. If there ismore than one backup for a single week, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "keep-yearly" : {
+ "description" : "Keep backups for the last <N> different years. If there is more than one backup for a single year, only the latest one is kept.",
+ "format_description" : "N",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "namespace" : {
+ "description" : "Proxmox Backup Server namespace in the datastore, defaults to the root NS.",
+ "maxLength" : 256,
"optional" : 1,
+ "pattern" : "(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)/){0,7}(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*))?",
"type" : "string"
},
- "rstatus" : {
- "description" : "Delivery status of relayed mail.",
- "maxLength" : 1,
- "minLength" : 1,
+ "notify" : {
+ "description" : "Specify when to notify via e-mail",
+ "enum" : [
+ "always",
+ "error",
+ "never"
+ ],
"optional" : 1,
"type" : "string"
},
- "size" : {
- "description" : "The size of the raw email.",
+ "password" : {
+ "description" : "Password or API token secret for the user on the Proxmox Backup Server.",
"optional" : 1,
- "type" : "number"
+ "type" : "string"
},
- "time" : {
- "description" : "Delivery timestamp.",
- "type" : "integer"
+ "remote" : {
+ "description" : "Proxmox Backup Server ID.",
+ "format" : "pve-configid",
+ "type" : "string"
},
- "to" : {
- "description" : "Receiver email address.",
+ "server" : {
+ "description" : "Proxmox Backup Server address.",
+ "format" : "address",
+ "maxLength" : 256,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "username" : {
+ "description" : "Username or API token ID on the Proxmox Backup Server",
+ "maxLength" : 512,
+ "minLength" : 3,
+ "optional" : 1,
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
"type" : "string"
}
},
},
"links" : [
{
- "href" : "{id}",
+ "href" : "{remote}",
"rel" : "child"
}
],
}
},
"leaf" : 0,
- "path" : "/nodes/{node}/tracker",
- "text" : "tracker"
+ "path" : "/nodes/{node}/pbs",
+ "text" : "pbs"
},
{
"children" : [
{
"info" : {
- "DELETE" : {
- "description" : "Delete a backup file.",
- "method" : "DELETE",
- "name" : "delete",
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get information about the node's certificates.",
+ "method" : "GET",
+ "name" : "info",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "filename" : {
- "description" : "The backup file name.",
- "maxLength" : 256,
- "minLength" : 4,
- "pattern" : "pmg-backup_[0-9A-Za-z_-]+\\.tgz",
- "type" : "string"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
}
}
},
- "permissions" : {
- "check" : [
- "admin"
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "type" : "null"
- }
- },
+ "permissions" : {
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "filename" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "fingerprint" : {
+ "description" : "Certificate SHA 256 fingerprint.",
+ "optional" : 1,
+ "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+ "type" : "string"
+ },
+ "issuer" : {
+ "description" : "Certificate issuer name.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "notafter" : {
+ "description" : "Certificate's notAfter timestamp (UNIX epoch).",
+ "optional" : 1,
+ "renderer" : "timestamp",
+ "type" : "integer"
+ },
+ "notbefore" : {
+ "description" : "Certificate's notBefore timestamp (UNIX epoch).",
+ "optional" : 1,
+ "renderer" : "timestamp",
+ "type" : "integer"
+ },
+ "pem" : {
+ "description" : "Certificate in PEM format",
+ "format" : "pem-certificate",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "public-key-bits" : {
+ "description" : "Certificate's public key size",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "public-key-type" : {
+ "description" : "Certificate's public key algorithm",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "san" : {
+ "description" : "List of Certificate's SubjectAlternativeName entries.",
+ "items" : {
+ "type" : "string"
+ },
+ "optional" : 1,
+ "renderer" : "yaml",
+ "type" : "array"
+ },
+ "subject" : {
+ "description" : "Certificate subject name.",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/certificates/info",
+ "text" : "info"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "DELETE custom certificate chain and key.",
+ "method" : "DELETE",
+ "name" : "remove_custom_cert",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "restart" : {
+ "default" : 0,
+ "description" : "Restart pmgproxy.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "type" : {
+ "description" : "The TLS certificate type (API or SMTP certificate).",
+ "enum" : [
+ "api",
+ "smtp"
+ ],
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Upload or update custom certificate chain and key.",
+ "method" : "POST",
+ "name" : "upload_custom_cert",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "certificates" : {
+ "description" : "PEM encoded certificate (chain).",
+ "format" : "pem-certificate-chain",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "force" : {
+ "default" : 0,
+ "description" : "Overwrite existing custom or ACME certificate files.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "key" : {
+ "description" : "PEM encoded private key.",
+ "format" : "pem-string",
+ "optional" : 0,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "restart" : {
+ "default" : 0,
+ "description" : "Restart services.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "type" : {
+ "description" : "The TLS certificate type (API or SMTP certificate).",
+ "enum" : [
+ "api",
+ "smtp"
+ ],
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "filename" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "fingerprint" : {
+ "description" : "Certificate SHA 256 fingerprint.",
+ "optional" : 1,
+ "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+ "type" : "string"
+ },
+ "issuer" : {
+ "description" : "Certificate issuer name.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "notafter" : {
+ "description" : "Certificate's notAfter timestamp (UNIX epoch).",
+ "optional" : 1,
+ "renderer" : "timestamp",
+ "type" : "integer"
+ },
+ "notbefore" : {
+ "description" : "Certificate's notBefore timestamp (UNIX epoch).",
+ "optional" : 1,
+ "renderer" : "timestamp",
+ "type" : "integer"
+ },
+ "pem" : {
+ "description" : "Certificate in PEM format",
+ "format" : "pem-certificate",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "public-key-bits" : {
+ "description" : "Certificate's public key size",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "public-key-type" : {
+ "description" : "Certificate's public key algorithm",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "san" : {
+ "description" : "List of Certificate's SubjectAlternativeName entries.",
+ "items" : {
+ "type" : "string"
+ },
+ "optional" : 1,
+ "renderer" : "yaml",
+ "type" : "array"
+ },
+ "subject" : {
+ "description" : "Certificate subject name.",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/certificates/custom/{type}",
+ "text" : "{type}"
+ }
+ ],
+ "info" : {
"GET" : {
- "description" : "Download a backup file.",
- "download" : 1,
+ "allowtoken" : 1,
+ "description" : "Certificate index.",
"method" : "GET",
- "name" : "download",
+ "name" : "custom_cert_index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "filename" : {
- "description" : "The backup file name.",
- "maxLength" : 256,
- "minLength" : 4,
- "pattern" : "pmg-backup_[0-9A-Za-z_-]+\\.tgz",
- "type" : "string"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
}
},
"permissions" : {
- "check" : [
- "admin"
- ]
+ "user" : "all"
},
- "protected" : 1,
- "proxyto" : "node",
"returns" : {
- "type" : "string"
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{type}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
- },
- "POST" : {
- "description" : "Restore the system configuration.",
- "method" : "POST",
- "name" : "restore",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "config" : {
- "default" : 0,
- "description" : "Restore system configuration.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/certificates/custom",
+ "text" : "custom"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Revoke existing certificate from CA.",
+ "method" : "DELETE",
+ "name" : "revoke_acme_cert",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "The TLS certificate type (API or SMTP certificate).",
+ "enum" : [
+ "api",
+ "smtp"
+ ],
+ "type" : "string"
+ }
+ }
},
- "database" : {
- "default" : 1,
- "description" : "Restore the rule database. This is the default.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
},
- "filename" : {
- "description" : "The backup file name.",
- "maxLength" : 256,
- "minLength" : 4,
- "pattern" : "pmg-backup_[0-9A-Za-z_-]+\\.tgz",
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Order a new certificate from ACME-compatible CA.",
+ "method" : "POST",
+ "name" : "new_acme_cert",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "default" : 0,
+ "description" : "Overwrite existing custom certificate.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "The TLS certificate type (API or SMTP certificate).",
+ "enum" : [
+ "api",
+ "smtp"
+ ],
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Renew existing certificate from CA.",
+ "method" : "PUT",
+ "name" : "renew_acme_cert",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "default" : 0,
+ "description" : "Force renewal even if expiry is more than 30 days away.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "The TLS certificate type (API or SMTP certificate).",
+ "enum" : [
+ "api",
+ "smtp"
+ ],
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
},
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/certificates/acme/{type}",
+ "text" : "{type}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "ACME Certificate index.",
+ "method" : "GET",
+ "name" : "acme_cert_index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
- },
- "statistic" : {
- "default" : 0,
- "description" : "Restore statistic databases. Only considered when you restore the 'database'.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
}
}
},
"permissions" : {
- "check" : [
- "admin"
- ]
+ "user" : "all"
},
- "protected" : 1,
- "proxyto" : "node",
"returns" : {
- "type" : "string"
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{type}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
},
- "leaf" : 1,
- "path" : "/nodes/{node}/backup/{filename}",
- "text" : "{filename}"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/certificates/acme",
+ "text" : "acme"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Node index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
- ],
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/certificates",
+ "text" : "certificates"
+ },
+ {
"info" : {
"GET" : {
- "description" : "List all stored backups (files named proxmox-backup_{DATE}.tgz).",
+ "allowtoken" : 1,
+ "description" : "Get node configuration options.",
"method" : "GET",
- "name" : "list",
+ "name" : "get_config",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"protected" : 1,
"proxyto" : "node",
"returns" : {
- "items" : {
- "properties" : {
- "filename" : {
- "description" : "The backup file name.",
- "maxLength" : 256,
- "minLength" : 4,
- "pattern" : "pmg-backup_[0-9A-Za-z_-]+\\.tgz",
- "type" : "string"
+ "additionalProperties" : 0,
+ "properties" : {
+ "acme" : {
+ "description" : "Node specific ACME settings.",
+ "format" : {
+ "account" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
+ "format" : "pve-configid",
+ "format_description" : "name",
+ "optional" : 1,
+ "type" : "string"
+ }
},
- "size" : {
- "description" : "Size of backup file in bytes.",
- "type" : "integer"
+ "optional" : 1,
+ "type" : "string"
+ },
+ "acmedomain[n]" : {
+ "description" : "ACME domain and validation plugin",
+ "format" : {
+ "alias" : {
+ "description" : "Alias for the Domain to verify ACME Challenge over DNS",
+ "format" : "pmg-acme-alias",
+ "format_description" : "domain",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "domain" : {
+ "default_key" : 1,
+ "description" : "domain for this node's ACME certificate",
+ "format" : "pmg-acme-domain",
+ "format_description" : "domain",
+ "type" : "string"
+ },
+ "plugin" : {
+ "default" : "standalone",
+ "description" : "The ACME plugin ID",
+ "format" : "pve-configid",
+ "format_description" : "name of the plugin configuration",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "usage" : {
+ "description" : "Whether this domain is used for the API, SMTP or both",
+ "format" : "pmg-certificate-type-list",
+ "format_description" : "usage list",
+ "type" : "string"
+ }
},
- "timestamp" : {
- "description" : "Backup timestamp (Unix epoch).",
- "type" : "integer"
- }
+ "optional" : 1,
+ "type" : "string"
},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{filename}",
- "rel" : "child"
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string"
}
- ],
- "type" : "array"
+ },
+ "type" : "object"
}
},
- "POST" : {
- "description" : "Backup the system configuration.",
- "method" : "POST",
- "name" : "backup",
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set node configuration options.",
+ "method" : "PUT",
+ "name" : "set_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "acme" : {
+ "description" : "Node specific ACME settings.",
+ "format" : {
+ "account" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
+ "format" : "pve-configid",
+ "format_description" : "name",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[account=<name>]"
+ },
+ "acmedomain[n]" : {
+ "description" : "ACME domain and validation plugin",
+ "format" : {
+ "alias" : {
+ "description" : "Alias for the Domain to verify ACME Challenge over DNS",
+ "format" : "pmg-acme-alias",
+ "format_description" : "domain",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "domain" : {
+ "default_key" : 1,
+ "description" : "domain for this node's ACME certificate",
+ "format" : "pmg-acme-domain",
+ "format_description" : "domain",
+ "type" : "string"
+ },
+ "plugin" : {
+ "default" : "standalone",
+ "description" : "The ACME plugin ID",
+ "format" : "pve-configid",
+ "format_description" : "name of the plugin configuration",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "usage" : {
+ "description" : "Whether this domain is used for the API, SMTP or both",
+ "format" : "pmg-certificate-type-list",
+ "format_description" : "usage list",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[domain=]<domain> ,usage=<usage list> [,alias=<domain>] [,plugin=<name of the plugin configuration>]"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/config",
+ "text" : "config"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Gather various system information about a node",
+ "method" : "GET",
+ "name" : "report",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
- },
- "statistic" : {
- "default" : 1,
- "description" : "Backup statistic databases.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
}
}
},
"permissions" : {
"check" : [
- "admin"
+ "admin",
+ "audit"
]
},
"protected" : 1,
}
}
},
- "leaf" : 0,
- "path" : "/nodes/{node}/backup",
- "text" : "backup"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/report",
+ "text" : "report"
},
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read node RRD statistics",
"method" : "GET",
"name" : "rrddata",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read system log",
"method" : "GET",
"name" : "syslog",
},
{
"info" : {
- "POST" : {
- "description" : "Creates a VNC Shell proxy.",
- "method" : "POST",
- "name" : "vncshell",
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read Journal",
+ "method" : "GET",
+ "name" : "journal",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "endcursor" : {
+ "description" : "End before the given Cursor. Conflicts with 'until'.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "lastentries" : {
+ "description" : "Limit to the last X lines. Conflicts with a range.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
},
- "upgrade" : {
- "default" : 0,
- "description" : "Run 'apt-get dist-upgrade' instead of normal shell.",
+ "since" : {
+ "description" : "Display all log since this UNIX epoch. Conflicts with 'startcursor'.",
+ "minimum" : 0,
"optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "websocket" : {
- "default" : 1,
- "description" : "use websocket instead of standard vnc.",
+ "startcursor" : {
+ "description" : "Start after the given Cursor. Conflicts with 'since'.",
"optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "until" : {
+ "description" : "Display all log until this UNIX epoch. Conflicts with 'endcursor'.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/journal",
+ "text" : "journal"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Creates a Terminal proxy.",
+ "method" : "POST",
+ "name" : "termproxy",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cmd" : {
+ "default" : "login",
+ "description" : "Run specific command or default to login.",
+ "enum" : [
+ "login",
+ "upgrade"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cmd-opts" : {
+ "default" : "",
+ "description" : "Add parameters to a command. Encoded as null terminated strings.",
+ "optional" : 1,
+ "requires" : "cmd",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"protected" : 1,
"returns" : {
"additionalProperties" : 0,
}
},
"leaf" : 1,
- "path" : "/nodes/{node}/vncshell",
- "text" : "vncshell"
+ "path" : "/nodes/{node}/termproxy",
+ "text" : "termproxy"
},
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Opens a weksocket for VNC traffic.",
"method" : "GET",
"name" : "vncwebsocket",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
"returns" : {
"properties" : {
"port" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read DNS settings.",
"method" : "GET",
"name" : "dns",
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Write DNS settings.",
"method" : "PUT",
"name" : "update_dns",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read server time and time zone settings.",
"method" : "GET",
"name" : "time",
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Set time zone.",
"method" : "PUT",
"name" : "set_timezone",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Read server status. This is used by the cluster manager to test the node health.",
"method" : "GET",
"name" : "status",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "qmanager",
+ "audit"
+ ]
+ },
"protected" : 1,
"proxyto" : "node",
"returns" : {
"minimum" : 0,
"type" : "integer"
}
- },
- "type" : "object"
+ },
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Reboot or shutdown a node.",
+ "method" : "POST",
+ "name" : "node_cmd",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "command" : {
+ "description" : "Specify the command.",
+ "enum" : [
+ "reboot",
+ "shutdown"
+ ],
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
},
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Node index.",
"method" : "GET",
"name" : "index",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Cluster node index.",
"method" : "GET",
"name" : "index",
{
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
"description" : "Delete a user.",
"method" : "DELETE",
"name" : "delete",
}
},
"GET" : {
+ "allowtoken" : 1,
"description" : "Read User data.",
"method" : "GET",
"name" : "read",
}
}
},
+ "permissions" : {
+ "check" : [
+ "admin",
+ "qmanager",
+ "audit"
+ ]
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
- "properties" : {},
"type" : "object"
}
},
"PUT" : {
+ "allowtoken" : 1,
"description" : "Update user data.",
"method" : "PUT",
"name" : "write",
"typetext" : "<string>"
},
"role" : {
- "description" : "User role. Role 'root' is reseved for the Unix Superuser.",
+ "description" : "User role. Role 'root' is reserved for the Unix Superuser.",
"enum" : [
"root",
"admin",
+ "helpdesk",
"qmanager",
"audit"
],
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "List users.",
"method" : "GET",
"name" : "index",
},
"permissions" : {
"check" : [
- "admin"
+ "admin",
+ "qmanager",
+ "audit"
]
},
"protected" : 1,
}
},
"POST" : {
- "description" : "Creat new user",
+ "allowtoken" : 1,
+ "description" : "Create new user",
"method" : "POST",
"name" : "create",
"parameters" : {
"type" : "string",
"typetext" : "<string>"
},
- "role" : {
- "description" : "User role. Role 'root' is reseved for the Unix Superuser.",
- "enum" : [
- "root",
+ "role" : {
+ "description" : "User role. Role 'root' is reserved for the Unix Superuser.",
+ "enum" : [
+ "root",
+ "admin",
+ "helpdesk",
+ "qmanager",
+ "audit"
+ ],
+ "type" : "string"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pmg-userid",
+ "maxLength" : 64,
+ "minLength" : 4,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/access/users",
+ "text" : "users"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 0,
+ "description" : "Delete a TFA entry by ID.",
+ "method" : "DELETE",
+ "name" : "delete_tfa",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "A TFA entry id.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "The current password.",
+ "maxLength" : 64,
+ "minLength" : 5,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pmg-userid",
+ "maxLength" : 64,
+ "minLength" : 4,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "qmanager",
+ "audit"
+ ],
+ "description" : "Each user is allowed to modify their own TFA entries. Only root can modify entries of another user."
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 0,
+ "description" : "Fetch a requested TFA entry if present.",
+ "method" : "GET",
+ "name" : "get_tfa_entry",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "A TFA entry id.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pmg-userid",
+ "maxLength" : 64,
+ "minLength" : 4,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Each user is allowed to view their own TFA entries. Only root can view entries of another user.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "description" : "TFA Entry.",
+ "properties" : {
+ "created" : {
+ "description" : "Creation time of this entry as unix epoch.",
+ "type" : "integer"
+ },
+ "description" : {
+ "description" : "User chosen description for this entry.",
+ "type" : "string"
+ },
+ "enable" : {
+ "default" : 1,
+ "description" : "Whether this TFA entry is currently enabled.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "id" : {
+ "description" : "The id used to reference this entry.",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "TFA Entry Type.",
+ "enum" : [
+ "totp",
+ "u2f",
+ "webauthn",
+ "recovery"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 0,
+ "description" : "Add a TFA entry for a user.",
+ "method" : "PUT",
+ "name" : "update_tfa_entry",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "description" : {
+ "description" : "A description to distinguish multiple entries from one another",
+ "maxLength" : 255,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Whether the entry should be enabled for login.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "A TFA entry id.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "The current password.",
+ "maxLength" : 64,
+ "minLength" : 5,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pmg-userid",
+ "maxLength" : 64,
+ "minLength" : 4,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "qmanager",
+ "audit"
+ ],
+ "description" : "Each user is allowed to modify their own TFA entries. Only root can modify entries of another user."
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/access/tfa/{userid}/{id}",
+ "text" : "{id}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 0,
+ "description" : "List TFA configurations of users.",
+ "method" : "GET",
+ "name" : "list_user_tfa",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pmg-userid",
+ "maxLength" : 64,
+ "minLength" : 4,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Each user is allowed to view their own TFA entries. Only root can view entries of another user.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "description" : "A list of the user's TFA entries.",
+ "items" : {
+ "description" : "TFA Entry.",
+ "properties" : {
+ "created" : {
+ "description" : "Creation time of this entry as unix epoch.",
+ "type" : "integer"
+ },
+ "description" : {
+ "description" : "User chosen description for this entry.",
+ "type" : "string"
+ },
+ "enable" : {
+ "default" : 1,
+ "description" : "Whether this TFA entry is currently enabled.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "id" : {
+ "description" : "The id used to reference this entry.",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "TFA Entry Type.",
+ "enum" : [
+ "totp",
+ "u2f",
+ "webauthn",
+ "recovery"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 0,
+ "description" : "Add a TFA entry for a user.",
+ "method" : "POST",
+ "name" : "add_tfa_entry",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "challenge" : {
+ "description" : "When responding to a u2f challenge: the original challenge string",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "description" : {
+ "description" : "A description to distinguish multiple entries from one another",
+ "maxLength" : 255,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "The current password.",
+ "maxLength" : 64,
+ "minLength" : 5,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "totp" : {
+ "description" : "A totp URI.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "TFA Entry Type.",
+ "enum" : [
+ "totp",
+ "u2f",
+ "webauthn",
+ "recovery"
+ ],
+ "type" : "string"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pmg-userid",
+ "maxLength" : 64,
+ "minLength" : 4,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "value" : {
+ "description" : "The current value for the provided totp URI, or a Webauthn/U2F challenge response",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
"admin",
"qmanager",
"audit"
],
- "type" : "string"
+ "description" : "Each user is allowed to modify their own TFA entries. Only root can modify entries of another user."
},
- "userid" : {
- "description" : "User ID",
- "format" : "pmg-userid",
- "maxLength" : 64,
- "minLength" : 4,
- "type" : "string",
- "typetext" : "<string>"
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "properties" : {
+ "challenge" : {
+ "description" : "When adding u2f entries, this contains a challenge the user must respond to in order to finish the registration.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "The id of a newly added TFA entry.",
+ "type" : "string"
+ },
+ "recovery" : {
+ "description" : "When adding recovery codes, this contains the list of codes to be displayed to the user",
+ "items" : {
+ "description" : "A recovery entry.",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ }
+ },
+ "type" : "object"
}
}
},
+ "leaf" : 0,
+ "path" : "/access/tfa/{userid}",
+ "text" : "{userid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 0,
+ "description" : "List TFA configurations of users.",
+ "method" : "GET",
+ "name" : "list_tfa",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "description" : "Returns all or just the logged-in user, depending on privileges.",
+ "user" : "all"
+ },
"protected" : 1,
"proxyto" : "master",
"returns" : {
- "type" : "null"
+ "description" : "The list tuples of user and TFA entries.",
+ "items" : {
+ "properties" : {
+ "entries" : {
+ "items" : {
+ "description" : "TFA Entry.",
+ "properties" : {
+ "created" : {
+ "description" : "Creation time of this entry as unix epoch.",
+ "type" : "integer"
+ },
+ "description" : {
+ "description" : "User chosen description for this entry.",
+ "type" : "string"
+ },
+ "enable" : {
+ "default" : 1,
+ "description" : "Whether this TFA entry is currently enabled.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "id" : {
+ "description" : "The id used to reference this entry.",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "TFA Entry Type.",
+ "enum" : [
+ "totp",
+ "u2f",
+ "webauthn",
+ "recovery"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ },
+ "userid" : {
+ "description" : "User this entry belongs to.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
}
},
"leaf" : 0,
- "path" : "/access/users",
- "text" : "users"
+ "path" : "/access/tfa",
+ "text" : "tfa"
},
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Dummy. Useful for formaters which want to priovde a login page.",
"method" : "GET",
"name" : "get_ticket",
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Create or verify authentication ticket.",
"method" : "POST",
"name" : "create_ticket",
"type" : "string",
"typetext" : "<string>"
},
+ "path" : {
+ "description" : "Verify ticket, and check if user have access on 'path'",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"realm" : {
"description" : "You can optionally pass the realm using this parameter. Normally the realm is simply added to the username <username>@<relam>.",
"enum" : [
"optional" : 1,
"type" : "string"
},
+ "tfa-challenge" : {
+ "description" : "The signed TFA challenge string the user wants to respond to.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"username" : {
"description" : "User name",
"maxLength" : 64,
{
"info" : {
"PUT" : {
+ "allowtoken" : 1,
"description" : "Change user password.",
"method" : "PUT",
"name" : "change_passsword",
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Directory index.",
"method" : "GET",
"name" : "index",
{
"children" : [
{
- "children" : [
- {
- "info" : {
- "DELETE" : {
- "description" : "Delete user whitelist entries.",
- "method" : "DELETE",
- "name" : "whitelist_delete",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "address" : {
- "description" : "The address you want to remove.",
- "maxLength" : 512,
- "minLength" : 3,
- "pattern" : "(?:|[^\\s\\/\\@]+\\@[^\\s\\/\\@]+)",
- "type" : "string"
- },
- "pmail" : {
- "description" : "List entries for the user with this primary email address. Quarantine users cannot speficy this parameter, but it is required for all other roles.",
- "format" : "email",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "admin",
- "qmanager",
- "audit",
- "quser"
- ]
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete user whitelist entries.",
+ "method" : "DELETE",
+ "name" : "whitelist_delete_base",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "address" : {
+ "description" : "The address, or comma-separated list of addresses, you want to remove.",
+ "minLength" : 3,
+ "pattern" : "",
+ "type" : "string"
},
- "protected" : 1,
- "returns" : {
- "type" : "null"
+ "pmail" : {
+ "description" : "List entries for the user with this primary email address. Quarantine users cannot specify this parameter, but it is required for all other roles.",
+ "maxLength" : 512,
+ "minLength" : 3,
+ "optional" : 1,
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+ "type" : "string"
}
}
},
- "leaf" : 1,
- "path" : "/quarantine/whitelist/{address}",
- "text" : "{address}"
- }
- ],
- "info" : {
+ "permissions" : {
+ "check" : [
+ "admin",
+ "qmanager",
+ "audit",
+ "quser"
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
"GET" : {
+ "allowtoken" : 1,
"description" : "Show user whitelist.",
"method" : "GET",
"name" : "whitelist",
"additionalProperties" : 0,
"properties" : {
"pmail" : {
- "description" : "List entries for the user with this primary email address. Quarantine users cannot speficy this parameter, but it is required for all other roles.",
- "format" : "email",
+ "description" : "List entries for the user with this primary email address. Quarantine users cannot specify this parameter, but it is required for all other roles.",
+ "maxLength" : 512,
+ "minLength" : 3,
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+ "type" : "string"
}
}
},
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Add user whitelist entries.",
"method" : "POST",
"name" : "whitelist_add",
"properties" : {
"address" : {
"description" : "The address you want to add.",
- "maxLength" : 512,
"minLength" : 3,
- "pattern" : "(?:|[^\\s\\/\\@]+\\@[^\\s\\/\\@]+)",
+ "pattern" : "(?:[^\\s\\/\\\\;\\,]+)(?:\\,[^\\s\\/\\\\;\\,]+)*",
"type" : "string"
},
"pmail" : {
- "description" : "List entries for the user with this primary email address. Quarantine users cannot speficy this parameter, but it is required for all other roles.",
- "format" : "email",
+ "description" : "List entries for the user with this primary email address. Quarantine users cannot specify this parameter, but it is required for all other roles.",
+ "maxLength" : 512,
+ "minLength" : 3,
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+ "type" : "string"
}
}
},
}
}
},
- "leaf" : 0,
+ "leaf" : 1,
"path" : "/quarantine/whitelist",
"text" : "whitelist"
},
{
- "children" : [
- {
- "info" : {
- "DELETE" : {
- "description" : "Delete user blacklist entries.",
- "method" : "DELETE",
- "name" : "blacklist_delete",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "address" : {
- "description" : "The address you want to remove.",
- "maxLength" : 512,
- "minLength" : 3,
- "pattern" : "(?:|[^\\s\\/\\@]+\\@[^\\s\\/\\@]+)",
- "type" : "string"
- },
- "pmail" : {
- "description" : "List entries for the user with this primary email address. Quarantine users cannot speficy this parameter, but it is required for all other roles.",
- "format" : "email",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "admin",
- "qmanager",
- "audit",
- "quser"
- ]
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete user blacklist entries.",
+ "method" : "DELETE",
+ "name" : "blacklist_delete_base",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "address" : {
+ "description" : "The address, or comma-separated list of addresses, you want to remove.",
+ "minLength" : 3,
+ "pattern" : "",
+ "type" : "string"
},
- "protected" : 1,
- "returns" : {
- "type" : "null"
+ "pmail" : {
+ "description" : "List entries for the user with this primary email address. Quarantine users cannot specify this parameter, but it is required for all other roles.",
+ "maxLength" : 512,
+ "minLength" : 3,
+ "optional" : 1,
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+ "type" : "string"
}
}
},
- "leaf" : 1,
- "path" : "/quarantine/blacklist/{address}",
- "text" : "{address}"
- }
- ],
- "info" : {
+ "permissions" : {
+ "check" : [
+ "admin",
+ "qmanager",
+ "audit",
+ "quser"
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
"GET" : {
+ "allowtoken" : 1,
"description" : "Show user blacklist.",
"method" : "GET",
"name" : "blacklist",
"additionalProperties" : 0,
"properties" : {
"pmail" : {
- "description" : "List entries for the user with this primary email address. Quarantine users cannot speficy this parameter, but it is required for all other roles.",
- "format" : "email",
+ "description" : "List entries for the user with this primary email address. Quarantine users cannot specify this parameter, but it is required for all other roles.",
+ "maxLength" : 512,
+ "minLength" : 3,
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+ "type" : "string"
}
}
},
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Add user blacklist entries.",
"method" : "POST",
"name" : "blacklist_add",
"properties" : {
"address" : {
"description" : "The address you want to add.",
- "maxLength" : 512,
"minLength" : 3,
- "pattern" : "(?:|[^\\s\\/\\@]+\\@[^\\s\\/\\@]+)",
+ "pattern" : "(?:[^\\s\\/\\\\;\\,]+)(?:\\,[^\\s\\/\\\\;\\,]+)*",
"type" : "string"
},
"pmail" : {
- "description" : "List entries for the user with this primary email address. Quarantine users cannot speficy this parameter, but it is required for all other roles.",
- "format" : "email",
+ "description" : "List entries for the user with this primary email address. Quarantine users cannot specify this parameter, but it is required for all other roles.",
+ "maxLength" : 512,
+ "minLength" : 3,
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+ "type" : "string"
}
}
},
}
}
},
- "leaf" : 0,
+ "leaf" : 1,
"path" : "/quarantine/blacklist",
"text" : "blacklist"
},
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get a list of receivers of spam in the given timespan (Default the last 24 hours).",
"method" : "GET",
"name" : "spamusers",
"type" : "integer",
"typetext" : "<integer> (1 - N)"
},
+ "quarantine-type" : {
+ "default" : "spam",
+ "description" : "Query this type of quarantine for users.",
+ "enum" : [
+ "attachment",
+ "spam",
+ "virus"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
"starttime" : {
"description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
"minimum" : 0,
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get Spam Quarantine Status",
"method" : "GET",
"name" : "spamstatus",
{
"info" : {
"GET" : {
- "description" : "Get a list of users with whitelist/blacklist setttings.",
+ "allowtoken" : 1,
+ "description" : "Get a list of users with whitelist/blacklist settings.",
"method" : "GET",
"name" : "quarusers",
"parameters" : {
- "additionalProperties" : 0
+ "additionalProperties" : 0,
+ "properties" : {
+ "list" : {
+ "description" : "If set, limits the result to the given list.",
+ "enum" : [
+ "BL",
+ "WL"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
},
"permissions" : {
"check" : [
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get a list of quarantined spam mails in the given timeframe (default the last 24 hours) for the given user.",
"method" : "GET",
"name" : "spam",
"typetext" : "<integer> (1 - N)"
},
"pmail" : {
- "description" : "List entries for the user with this primary email address. Quarantine users cannot speficy this parameter, but it is required for all other roles.",
- "format" : "email",
+ "description" : "List entries for the user with this primary email address. Quarantine users cannot specify this parameter, but it is required for all other roles.",
+ "maxLength" : 512,
+ "minLength" : 3,
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+ "type" : "string"
},
"starttime" : {
"description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get a list of quarantined virus mails in the given timeframe (default the last 24 hours).",
"method" : "GET",
"name" : "virus",
"type" : "integer",
"typetext" : "<integer> (1 - N)"
},
+ "pmail" : {
+ "description" : "List entries for the user with this primary email address. Quarantine users cannot specify this parameter, but it is required for all other roles.",
+ "maxLength" : 512,
+ "minLength" : 3,
+ "optional" : 1,
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+ "type" : "string"
+ },
"starttime" : {
"description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
"minimum" : 0,
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
+ "description" : "Get a list of quarantined attachment mails in the given timeframe (default the last 24 hours).",
+ "method" : "GET",
+ "name" : "attachment",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "endtime" : {
+ "description" : "Only consider entries older than 'endtime' (unix epoch). This is set to '<start> + 1day' by default.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "pmail" : {
+ "description" : "List entries for the user with this primary email address. Quarantine users cannot specify this parameter, but it is required for all other roles.",
+ "maxLength" : 512,
+ "minLength" : 3,
+ "optional" : 1,
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+ "type" : "string"
+ },
+ "starttime" : {
+ "description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "qmanager",
+ "audit"
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "bytes" : {
+ "description" : "Size of raw email.",
+ "type" : "integer"
+ },
+ "envelope_sender" : {
+ "description" : "SMTP envelope sender.",
+ "type" : "string"
+ },
+ "from" : {
+ "description" : "Header 'From' field.",
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "Unique ID",
+ "type" : "string"
+ },
+ "receiver" : {
+ "description" : "Receiver email address",
+ "type" : "string"
+ },
+ "sender" : {
+ "description" : "Header 'Sender' field.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "subject" : {
+ "description" : "Header 'Subject' field.",
+ "type" : "string"
+ },
+ "time" : {
+ "description" : "Receive time stamp",
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/quarantine/attachment",
+ "text" : "attachment"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
"description" : "Get Virus Quarantine Status",
"method" : "GET",
"name" : "virusstatus",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get email data. There is a special formatter called 'htmlmail' to get sanitized html view of the mail content (use the '/api2/htmlmail/quarantine/content' url).",
"method" : "GET",
"name" : "content",
"properties" : {
"id" : {
"description" : "Unique ID",
- "maxLength" : 40,
- "pattern" : "C\\d+R\\d+",
+ "maxLength" : 60,
+ "pattern" : "C\\d+R\\d+T\\d+",
"type" : "string"
},
"raw" : {
"default" : 0,
- "description" : "Display 'raw' eml data. This is only used with the 'htmlmail' formatter.",
+ "description" : "Display 'raw' eml data. Deactivates size limit.",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
]
},
"returns" : {
- "properties" : {
- "bytes" : {
- "description" : "Size of raw email.",
- "type" : "integer"
- },
- "content" : {
- "description" : "Raw email data (first 4096 bytes). Useful for preview. NOTE: The 'htmlmail' formatter displays the whole email.",
- "type" : "string"
- },
- "envelope_sender" : {
- "description" : "SMTP envelope sender.",
- "type" : "string"
- },
- "from" : {
- "description" : "Header 'From' field.",
- "type" : "string"
- },
- "header" : {
- "description" : "Raw email header data.",
- "type" : "string"
- },
- "id" : {
- "description" : "Unique ID",
- "type" : "string"
- },
- "receiver" : {
- "description" : "Receiver email address",
- "type" : "string"
- },
- "sender" : {
- "description" : "Header 'Sender' field.",
- "optional" : 1,
- "type" : "string"
- },
- "spaminfo" : {
- "description" : "Information about matched spam tests (name, score, desc, url).",
- "type" : "array"
- },
- "spamlevel" : {
- "description" : "Spam score.",
- "type" : "number"
- },
- "subject" : {
- "description" : "Header 'Subject' field.",
- "type" : "string"
- },
- "time" : {
- "description" : "Receive time stamp",
- "type" : "integer"
- }
- },
+ "properties" : {
+ "bytes" : {
+ "description" : "Size of raw email.",
+ "type" : "integer"
+ },
+ "content" : {
+ "description" : "Raw email data (first 4096 bytes). Useful for preview. NOTE: The 'htmlmail' formatter displays the whole email.",
+ "type" : "string"
+ },
+ "envelope_sender" : {
+ "description" : "SMTP envelope sender.",
+ "type" : "string"
+ },
+ "from" : {
+ "description" : "Header 'From' field.",
+ "type" : "string"
+ },
+ "header" : {
+ "description" : "Raw email header data.",
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "Unique ID",
+ "type" : "string"
+ },
+ "receiver" : {
+ "description" : "Receiver email address",
+ "type" : "string"
+ },
+ "sender" : {
+ "description" : "Header 'Sender' field.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "spaminfo" : {
+ "description" : "Information about matched spam tests (name, score, desc, url).",
+ "type" : "array"
+ },
+ "spamlevel" : {
+ "description" : "Spam score.",
+ "type" : "number"
+ },
+ "subject" : {
+ "description" : "Header 'Subject' field.",
+ "type" : "string"
+ },
+ "time" : {
+ "description" : "Receive time stamp",
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Execute quarantine actions.",
+ "method" : "POST",
+ "name" : "action",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "action" : {
+ "description" : "Action - specify what you want to do with the mail.",
+ "enum" : [
+ "whitelist",
+ "blacklist",
+ "deliver",
+ "delete"
+ ],
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "Unique IDs, separate with ;",
+ "pattern" : "C\\d+R\\d+T\\d+(;C\\d+R\\d+T\\d+)*",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "qmanager",
+ "quser"
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/quarantine/content",
+ "text" : "content"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get Attachments for E-Mail in Quarantine.",
+ "method" : "GET",
+ "name" : "listattachments",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "Unique ID",
+ "maxLength" : 60,
+ "pattern" : "C\\d+R\\d+T\\d+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "qmanager",
+ "audit",
+ "quser"
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "content-type" : {
+ "description" : "Raw email header data.",
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "Attachment ID",
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "Raw email header data.",
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "Size of raw attachment in bytes.",
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/quarantine/listattachments",
+ "text" : "listattachments"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Download E-Mail or Attachment from Quarantine.",
+ "download" : 1,
+ "method" : "GET",
+ "name" : "download",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "attachmentid" : {
+ "description" : "The Attachment ID for the mail.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "mailid" : {
+ "description" : "Unique ID",
+ "maxLength" : 60,
+ "pattern" : "C\\d+R\\d+T\\d+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "qmanager",
+ "audit",
+ "quser"
+ ]
+ },
+ "returns" : {
"type" : "object"
}
- },
+ }
+ },
+ "leaf" : 1,
+ "path" : "/quarantine/download",
+ "text" : "download"
+ },
+ {
+ "info" : {
"POST" : {
- "description" : "Execute quarantine actions.",
+ "allowtoken" : 1,
+ "description" : "Send Quarantine link to given e-mail.",
"method" : "POST",
- "name" : "action",
+ "name" : "sendlink",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "action" : {
- "description" : "Action - specify what you want to do with the mail.",
- "enum" : [
- "whitelist",
- "blacklist",
- "deliver",
- "delete"
- ],
- "type" : "string"
- },
- "id" : {
- "description" : "Unique ID",
- "maxLength" : 40,
- "pattern" : "C\\d+R\\d+",
+ "mail" : {
+ "description" : "Email Address (allow most characters).",
+ "maxLength" : 512,
+ "minLength" : 3,
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
"type" : "string"
}
}
},
"permissions" : {
- "check" : [
- "admin",
- "qmanager",
- "quser"
- ]
+ "user" : "world"
},
"protected" : 1,
"returns" : {
}
},
"leaf" : 1,
- "path" : "/quarantine/content",
- "text" : "content"
+ "path" : "/quarantine/sendlink",
+ "text" : "sendlink"
}
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Directory index.",
"method" : "GET",
"name" : "index",
{
"children" : [
{
- "children" : [
- {
- "info" : {
- "GET" : {
- "description" : "Detailed Contact Statistics.",
- "method" : "GET",
- "name" : "contactdetails",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "contact" : {
- "description" : "Contact email address.",
- "maxLength" : 512,
- "minLength" : 3,
- "pattern" : "(?:|[^\\s\\/\\@]+\\@[^\\s\\/\\@]+)",
- "type" : "string"
- },
- "day" : {
- "description" : "Day of month. Get statistics for a single day.",
- "maximum" : 31,
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - 31)"
- },
- "endtime" : {
- "description" : "Only consider entries older than 'endtime' (unix epoch). This is set to '<start> + 1day' by default.",
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - N)"
- },
- "filter" : {
- "description" : "Sender address filter.",
- "maxLength" : 512,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "month" : {
- "description" : "Month. You will get statistics for the whole month if you do not specify a day.",
- "maximum" : 12,
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - 12)"
- },
- "orderby" : {
- "description" : "Remote sorting configuration(JSON, ExtJS compatible).",
- "maxLength" : 4096,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "starttime" : {
- "description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "year" : {
- "description" : "Year. Defaults to current year. You will get statistics for the whole year if you do not specify a month or day.",
- "maximum" : 3000,
- "minimum" : 1900,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1900 - 3000)"
- }
- }
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Contact Address Statistics.",
+ "method" : "GET",
+ "name" : "contact",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "day" : {
+ "description" : "Day of month. Get statistics for a single day.",
+ "maximum" : 31,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 31)"
},
- "permissions" : {
- "check" : [
- "admin",
- "qmanager",
- "audit"
- ]
+ "endtime" : {
+ "description" : "Only consider entries older than 'endtime' (unix epoch). This is set to '<start> + 1day' by default.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "returns" : {
- "items" : {
- "properties" : {
- "blocked" : {
- "description" : "Mail was blocked.",
- "type" : "boolean"
- },
- "bytes" : {
- "description" : "Mail traffic (Bytes).",
- "type" : "number"
- },
- "sender" : {
- "description" : "Sender email.",
- "type" : "string"
- },
- "spamlevel" : {
- "description" : "Spam score.",
- "type" : "number"
- },
- "time" : {
- "description" : "Receive time stamp",
- "type" : "integer"
- },
- "virusinfo" : {
- "description" : "Virus name.",
- "optional" : 1,
- "type" : "string"
- }
- },
- "type" : "object"
+ "filter" : {
+ "description" : "Contact address filter.",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "month" : {
+ "description" : "Month. You will get statistics for the whole month if you do not specify a day.",
+ "maximum" : 12,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 12)"
+ },
+ "orderby" : {
+ "description" : "Remote sorting configuration(JSON, ExtJS compatible).",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "starttime" : {
+ "description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "year" : {
+ "description" : "Year. Defaults to current year. You will get statistics for the whole year if you do not specify a month or day.",
+ "maximum" : 3000,
+ "minimum" : 1900,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1900 - 3000)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "qmanager",
+ "audit"
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "bytes" : {
+ "description" : "Mail traffic (Bytes).",
+ "type" : "number"
},
- "type" : "array"
+ "contact" : {
+ "description" : "Contact email.",
+ "type" : "string"
+ },
+ "count" : {
+ "description" : "Mail count.",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "viruscount" : {
+ "description" : "Number of sent virus mails.",
+ "optional" : 1,
+ "type" : "number"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{contact}",
+ "rel" : "child"
}
- }
- },
- "leaf" : 1,
- "path" : "/statistics/contact/{contact}",
- "text" : "{contact}"
+ ],
+ "type" : "array"
+ }
}
- ],
+ },
+ "leaf" : 1,
+ "path" : "/statistics/contact",
+ "text" : "contact"
+ },
+ {
"info" : {
"GET" : {
- "description" : "Contact Address Statistics.",
+ "allowtoken" : 1,
+ "description" : "Detailed Statistics.",
"method" : "GET",
- "name" : "contact",
+ "name" : "detailstats",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "address" : {
+ "description" : "Email address.",
+ "maxLength" : 512,
+ "minLength" : 3,
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+ "type" : "string"
+ },
"day" : {
"description" : "Day of month. Get statistics for a single day.",
"maximum" : 31,
"typetext" : "<integer> (1 - N)"
},
"filter" : {
- "description" : "Contact address filter.",
+ "description" : "Address filter.",
"maxLength" : 512,
"optional" : 1,
"type" : "string",
"type" : "integer",
"typetext" : "<integer> (0 - N)"
},
+ "type" : {
+ "description" : "Type of statistics",
+ "enum" : [
+ "contact",
+ "sender",
+ "receiver"
+ ],
+ "type" : "string"
+ },
"year" : {
"description" : "Year. Defaults to current year. You will get statistics for the whole year if you do not specify a month or day.",
"maximum" : 3000,
"returns" : {
"items" : {
"properties" : {
+ "blocked" : {
+ "description" : "Mail was blocked.",
+ "type" : "boolean"
+ },
"bytes" : {
"description" : "Mail traffic (Bytes).",
"type" : "number"
},
- "contact" : {
- "description" : "Contact email.",
+ "receiver" : {
+ "description" : "Receiver email. (for sender statistics)",
+ "optional" : 1,
"type" : "string"
},
- "count" : {
- "description" : "Mail count.",
+ "sender" : {
+ "description" : "Sender email. (for contact and receiver statistics)",
"optional" : 1,
+ "type" : "string"
+ },
+ "spamlevel" : {
+ "description" : "Spam score.",
"type" : "number"
},
- "viruscount" : {
- "description" : "Number of sent virus mails.",
+ "time" : {
+ "description" : "Receive time stamp",
+ "type" : "integer"
+ },
+ "virusinfo" : {
+ "description" : "Virus name.",
"optional" : 1,
- "type" : "number"
+ "type" : "string"
}
},
"type" : "object"
},
- "links" : [
- {
- "href" : "{contact}",
- "rel" : "child"
- }
- ],
"type" : "array"
}
}
},
- "leaf" : 0,
- "path" : "/statistics/contact",
- "text" : "contact"
+ "leaf" : 1,
+ "path" : "/statistics/detail",
+ "text" : "detail"
},
{
- "children" : [
- {
- "info" : {
- "GET" : {
- "description" : "Detailed Sender Statistics.",
- "method" : "GET",
- "name" : "senderdetails",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "day" : {
- "description" : "Day of month. Get statistics for a single day.",
- "maximum" : 31,
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - 31)"
- },
- "endtime" : {
- "description" : "Only consider entries older than 'endtime' (unix epoch). This is set to '<start> + 1day' by default.",
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - N)"
- },
- "filter" : {
- "description" : "Receiver address filter.",
- "maxLength" : 512,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "month" : {
- "description" : "Month. You will get statistics for the whole month if you do not specify a day.",
- "maximum" : 12,
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - 12)"
- },
- "orderby" : {
- "description" : "Remote sorting configuration(JSON, ExtJS compatible).",
- "maxLength" : 4096,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "sender" : {
- "description" : "Sender email address.",
- "maxLength" : 512,
- "minLength" : 3,
- "pattern" : "(?:|[^\\s\\/\\@]+\\@[^\\s\\/\\@]+)",
- "type" : "string"
- },
- "starttime" : {
- "description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "year" : {
- "description" : "Year. Defaults to current year. You will get statistics for the whole year if you do not specify a month or day.",
- "maximum" : 3000,
- "minimum" : 1900,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1900 - 3000)"
- }
- }
- },
- "permissions" : {
- "check" : [
- "admin",
- "qmanager",
- "audit"
- ]
- },
- "returns" : {
- "items" : {
- "properties" : {
- "blocked" : {
- "description" : "Mail was blocked.",
- "type" : "boolean"
- },
- "bytes" : {
- "description" : "Mail traffic (Bytes).",
- "type" : "number"
- },
- "receiver" : {
- "description" : "Receiver email.",
- "type" : "string"
- },
- "spamlevel" : {
- "description" : "Spam score.",
- "type" : "number"
- },
- "time" : {
- "description" : "Receive time stamp",
- "type" : "integer"
- },
- "virusinfo" : {
- "description" : "Virus name.",
- "optional" : 1,
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array"
- }
- }
- },
- "leaf" : 1,
- "path" : "/statistics/sender/{sender}",
- "text" : "{sender}"
- }
- ],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Sender Address Statistics.",
"method" : "GET",
"name" : "sender",
}
}
},
- "leaf" : 0,
+ "leaf" : 1,
"path" : "/statistics/sender",
"text" : "sender"
},
{
- "children" : [
- {
- "info" : {
- "GET" : {
- "description" : "Detailed Receiver Statistics.",
- "method" : "GET",
- "name" : "receiverdetails",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "day" : {
- "description" : "Day of month. Get statistics for a single day.",
- "maximum" : 31,
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - 31)"
- },
- "endtime" : {
- "description" : "Only consider entries older than 'endtime' (unix epoch). This is set to '<start> + 1day' by default.",
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - N)"
- },
- "filter" : {
- "description" : "Sender address filter.",
- "maxLength" : 512,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "month" : {
- "description" : "Month. You will get statistics for the whole month if you do not specify a day.",
- "maximum" : 12,
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - 12)"
- },
- "orderby" : {
- "description" : "Remote sorting configuration(JSON, ExtJS compatible).",
- "maxLength" : 4096,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "receiver" : {
- "description" : "Receiver email address.",
- "maxLength" : 512,
- "minLength" : 3,
- "pattern" : "(?:|[^\\s\\/\\@]+\\@[^\\s\\/\\@]+)",
- "type" : "string"
- },
- "starttime" : {
- "description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "year" : {
- "description" : "Year. Defaults to current year. You will get statistics for the whole year if you do not specify a month or day.",
- "maximum" : 3000,
- "minimum" : 1900,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1900 - 3000)"
- }
- }
- },
- "permissions" : {
- "check" : [
- "admin",
- "qmanager",
- "audit"
- ]
- },
- "returns" : {
- "items" : {
- "properties" : {
- "blocked" : {
- "description" : "Mail was blocked.",
- "type" : "boolean"
- },
- "bytes" : {
- "description" : "Mail traffic (Bytes).",
- "type" : "number"
- },
- "sender" : {
- "description" : "Sender email.",
- "type" : "string"
- },
- "spamlevel" : {
- "description" : "Spam score.",
- "type" : "number"
- },
- "time" : {
- "description" : "Receive time stamp",
- "type" : "integer"
- },
- "virusinfo" : {
- "description" : "Virus name.",
- "optional" : 1,
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array"
- }
- }
- },
- "leaf" : 1,
- "path" : "/statistics/receiver/{receiver}",
- "text" : "{receiver}"
- }
- ],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Receiver Address Statistics.",
"method" : "GET",
"name" : "receiver",
}
}
},
- "leaf" : 0,
+ "leaf" : 1,
"path" : "/statistics/receiver",
"text" : "receiver"
},
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Mail Domains Statistics.",
"method" : "GET",
"name" : "domains",
"returns" : {
"items" : {
"properties" : {
+ "bytes_in" : {
+ "description" : "Incoming mail traffic (Bytes).",
+ "type" : "number"
+ },
+ "bytes_out" : {
+ "description" : "Outgoing mail traffic (Bytes).",
+ "type" : "number"
+ },
"count_in" : {
"description" : "Incoming mail count.",
"type" : "number"
"description" : "Domain name.",
"type" : "string"
},
- "mbytes_in" : {
- "description" : "Incoming mail traffic (Mebibytes).",
- "type" : "number"
- },
- "mbytes_out" : {
- "description" : "Outgoing mail traffic (Mebibytes).",
- "type" : "number"
- },
"spamcount_in" : {
"description" : "Incoming spam mails.",
"type" : "number"
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "General Mail Statistics.",
"method" : "GET",
"name" : "mail",
"type" : "number"
},
"junk_in" : {
- "description" : "Incoming junk mail count (viruscount_in + spamcount_in + glcount + spfcount).",
+ "description" : "Incoming junk mail count (viruscount_in + spamcount_in + glcount + spfcount + rbl_rejects + pregreet_rejects).",
"type" : "number"
},
"junk_out" : {
"description" : "Outgoing junk mail count (viruscount_out + spamcount_out).",
"type" : "number"
},
+ "pregreet_rejects" : {
+ "description" : "PREGREET recject count.",
+ "type" : "integer"
+ },
+ "rbl_rejects" : {
+ "description" : "Number of RBL rejects.",
+ "type" : "integer"
+ },
"spamcount_in" : {
"description" : "Incoming spam mails.",
"type" : "number"
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Mail Count Statistics.",
"method" : "GET",
"name" : "recent",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Top recent Mail Receivers (including spam)",
"method" : "GET",
"name" : "recentreceivers",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Mail Count Statistics.",
"method" : "GET",
"name" : "mailcount",
"description" : "Time index.",
"type" : "integer"
},
+ "pregreet_rejects" : {
+ "description" : "PREGREET recject count.",
+ "type" : "integer"
+ },
+ "rbl_rejects" : {
+ "description" : "Number of RBL rejects.",
+ "type" : "integer"
+ },
"spamcount_in" : {
- "description" : "Incoming spam mails (spamcount_in + glcount + spfcount).",
+ "description" : "Incoming spam mails (spamcount_in + glcount + spfcount + rbl_rejects + pregreet_rejects).",
"type" : "number"
},
"spamcount_out" : {
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get Statistics about detected Viruses.",
"method" : "GET",
"name" : "virus",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get the count of spam mails grouped by spam score. Count for score 10 includes mails with spam score > 10.",
"method" : "GET",
"name" : "spamscores",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Get the count of spam mails grouped by spam score. Count for score 10 includes mails with spam score > 10.",
"method" : "GET",
"name" : "maildistribution",
{
"info" : {
"GET" : {
- "description" : "Mail RBL Count Statistics.",
+ "allowtoken" : 1,
+ "description" : "Early SMTP reject count statistic (RBL, PREGREET rejects with postscreen)",
"method" : "GET",
- "name" : "rblcount",
+ "name" : "rejectcount",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
},
"timespan" : {
"default" : 3600,
- "description" : "Return RBL rejects/<timespan>, where <timespan> is specified in seconds.",
+ "description" : "Return RBL/PREGREET rejects/<timespan>, where <timespan> is specified in seconds.",
"maximum" : 31622400,
"minimum" : 3600,
"optional" : 1,
"returns" : {
"items" : {
"properties" : {
- "count" : {
- "description" : "RBL recject count.",
- "type" : "number"
- },
"index" : {
"description" : "Time index.",
"type" : "integer"
},
+ "pregreet_rejects" : {
+ "description" : "PREGREET recject count.",
+ "type" : "integer"
+ },
+ "rbl_rejects" : {
+ "description" : "RBL recject count.",
+ "type" : "integer"
+ },
"time" : {
"description" : "Time (Unix epoch).",
"type" : "integer"
}
},
"leaf" : 1,
- "path" : "/statistics/rblcount",
- "text" : "rblcount"
+ "path" : "/statistics/rejectcount",
+ "text" : "rejectcount"
}
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "Directory index.",
"method" : "GET",
"name" : "index",
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
"description" : "API version details.",
"method" : "GET",
"name" : "version",
"returns" : {
"properties" : {
"release" : {
+ "description" : "The current installed Proxmox Mailgateway Release",
"type" : "string"
},
"repoid" : {
+ "description" : "The short git commit hash ID from which this version was build",
"type" : "string"
},
"version" : {
+ "description" : "The current installed pmg-api package version",
"type" : "string"
}
},