"properties" : {
"email" : {
"description" : "Email address.",
- "format" : "email",
- "type" : "string",
- "typetext" : "<string>"
+ "maxLength" : 512,
+ "minLength" : 3,
+ "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+ "type" : "string"
},
"profile" : {
"description" : "Profile ID.",
"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"
}
},
"datastore" : {
"description" : "Proxmox Backup Server datastore name.",
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "pattern" : "(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)",
+ "type" : "string"
},
"delete" : {
"description" : "A list of settings you want to delete.",
"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" : [
"datastore" : {
"description" : "Proxmox Backup Server datastore name.",
"optional" : 0,
+ "pattern" : "(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)",
"type" : "string"
},
"disable" : {
"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" : [
"datastore" : {
"description" : "Proxmox Backup Server datastore name.",
"optional" : 0,
- "type" : "string",
- "typetext" : "<string>"
+ "pattern" : "(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)",
+ "type" : "string"
},
"disable" : {
"description" : "Flag to disable (deactivate) the entry.",
"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" : [
"aurora",
"autodns",
"aws",
+ "azion",
"azure",
"cf",
"clouddns",
"nsone",
"nsupdate",
"nw",
+ "oci",
"one",
"online",
"openprovider",
"ultra",
"unoeuro",
"variomedia",
+ "veesp",
"vscale",
"vultr",
"websupport",
"aurora",
"autodns",
"aws",
+ "azion",
"azure",
"cf",
"clouddns",
"nsone",
"nsupdate",
"nw",
+ "oci",
"one",
"online",
"openprovider",
"ultra",
"unoeuro",
"variomedia",
+ "veesp",
"vscale",
"vultr",
"websupport",
"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" : {
"typetext" : "<boolean>"
},
"scriptedupdates" : {
- "default" : 0,
+ "default" : 1,
"description" : "Enables ScriptedUpdates (incremental download of signatures)",
"optional" : 1,
"type" : "boolean",
"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.",
"returns" : {
"type" : "null"
}
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Reload network configuration",
+ "method" : "PUT",
+ "name" : "reload_network_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
},
"leaf" : 0,
"pmg-hourly",
"pmg-daily",
"pmgreport",
- "pmgspamreport"
+ "pmgspamreport",
+ "chrony"
],
"type" : "string"
}
"pmg-hourly",
"pmg-daily",
"pmgreport",
- "pmgspamreport"
+ "pmgspamreport",
+ "chrony"
],
"type" : "string"
}
"pmg-hourly",
"pmg-daily",
"pmgreport",
- "pmgspamreport"
+ "pmgspamreport",
+ "chrony"
],
"type" : "string"
}
"pmg-hourly",
"pmg-daily",
"pmgreport",
- "pmgspamreport"
+ "pmgspamreport",
+ "chrony"
],
"type" : "string"
}
"pmg-hourly",
"pmg-daily",
"pmgreport",
- "pmgspamreport"
+ "pmgspamreport",
+ "chrony"
],
"type" : "string"
}
"pmg-hourly",
"pmg-daily",
"pmgreport",
- "pmgspamreport"
+ "pmgspamreport",
+ "chrony"
],
"type" : "string"
}
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "Get package information for important Proxmox packages.",
+ "description" : "Get APT repository information.",
"method" : "GET",
- "name" : "versions",
+ "name" : "repositories",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
},
"proxyto" : "node",
"returns" : {
- "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" : {
- "allowtoken" : 1,
- "description" : "Get the detailed syslog entries for a specific mail ID.",
- "method" : "GET",
- "name" : "maillog",
- "parameters" : {
- "additionalProperties" : 0,
+ "description" : "Result from parsing the APT repository files in /etc/apt/.",
"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>"
+ "digest" : {
+ "description" : "Common digest of all files.",
+ "type" : "string"
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ },
+ "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"
+ },
+ "standard-repos" : {
+ "description" : "List of standard repositories and their configuration status",
+ "items" : {
+ "properties" : {
+ "description" : {
+ "description" : "Description of the repository.",
+ "type" : "string"
+ },
+ "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>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "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>"
+ },
+ "handle" : {
+ "description" : "Handle that identifies a repository.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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}/apt/repositories",
+ "text" : "repositories"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get package information for important Proxmox packages.",
+ "method" : "GET",
+ "name" : "versions",
+ "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" : {},
+ "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" : {
+ "allowtoken" : 1,
+ "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 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>"
},
"datastore" : {
"description" : "Proxmox Backup Server datastore name.",
"optional" : 0,
+ "pattern" : "(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)",
"type" : "string"
},
"disable" : {
"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" : [
}
},
"protected" : 1,
- "proxyto" : "node",
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/time",
+ "text" : "time"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read server status. This is used by the cluster manager to test the node health.",
+ "method" : "GET",
+ "name" : "status",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "qmanager",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "additionalProperties" : 1,
+ "properties" : {
+ "insync" : {
+ "description" : "Database is synced with other nodes.",
+ "type" : "boolean"
+ },
+ "time" : {
+ "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
+ "minimum" : 1297163644,
+ "type" : "integer"
+ },
+ "uptime" : {
+ "description" : "The uptime of the system in seconds.",
+ "minimum" : 0,
+ "type" : "integer"
+ }
+ },
+ "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"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/status",
+ "text" : "status"
+ }
+ ],
+ "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}",
+ "text" : "{node}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Cluster node index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{node}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes",
+ "text" : "nodes"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete a user.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pmg-userid",
+ "maxLength" : 64,
+ "minLength" : 4,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "protected" : 1,
+ "proxyto" : "master",
"returns" : {
"type" : "null"
}
- }
- },
- "leaf" : 1,
- "path" : "/nodes/{node}/time",
- "text" : "time"
- },
- {
- "info" : {
+ },
"GET" : {
"allowtoken" : 1,
- "description" : "Read server status. This is used by the cluster manager to test the node health.",
+ "description" : "Read User data.",
"method" : "GET",
- "name" : "status",
+ "name" : "read",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pmg-userid",
+ "maxLength" : 64,
+ "minLength" : 4,
"type" : "string",
"typetext" : "<string>"
}
]
},
"protected" : 1,
- "proxyto" : "node",
+ "proxyto" : "master",
"returns" : {
- "additionalProperties" : 1,
- "properties" : {
- "insync" : {
- "description" : "Database is synced with other nodes.",
- "type" : "boolean"
- },
- "time" : {
- "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
- "minimum" : 1297163644,
- "type" : "integer"
- },
- "uptime" : {
- "description" : "The uptime of the system in seconds.",
- "minimum" : 0,
- "type" : "integer"
- }
- },
"type" : "object"
}
},
- "POST" : {
+ "PUT" : {
"allowtoken" : 1,
- "description" : "Reboot or shutdown a node.",
- "method" : "POST",
- "name" : "node_cmd",
+ "description" : "Update user data.",
+ "method" : "PUT",
+ "name" : "write",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "command" : {
- "description" : "Specify the command.",
+ "comment" : {
+ "description" : "Comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "crypt_pass" : {
+ "description" : "Encrypted password (see `man crypt`)",
+ "optional" : 1,
+ "pattern" : "\\$\\d\\$[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>"
+ },
+ "email" : {
+ "description" : "Users E-Mail address.",
+ "format" : "email",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "default" : 0,
+ "description" : "Flag to enable or disable the account.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "expire" : {
+ "default" : 0,
+ "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "firstname" : {
+ "description" : "First name.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "keys" : {
+ "description" : "Keys for two factor auth (yubico).",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "lastname" : {
+ "description" : "Last name.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "Password",
+ "maxLength" : 32,
+ "minLength" : 5,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "role" : {
+ "description" : "User role. Role 'root' is reserved for the Unix Superuser.",
"enum" : [
- "reboot",
- "shutdown"
+ "root",
+ "admin",
+ "helpdesk",
+ "qmanager",
+ "audit"
],
+ "optional" : 1,
"type" : "string"
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pmg-userid",
+ "maxLength" : 64,
+ "minLength" : 4,
"type" : "string",
"typetext" : "<string>"
}
}
},
- "permissions" : {
- "check" : [
- "admin"
- ]
- },
"protected" : 1,
- "proxyto" : "node",
+ "proxyto" : "master",
"returns" : {
"type" : "null"
}
}
},
"leaf" : 1,
- "path" : "/nodes/{node}/status",
- "text" : "status"
+ "path" : "/access/users/{userid}",
+ "text" : "{userid}"
}
],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "Node index.",
+ "description" : "List users.",
"method" : "GET",
"name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "admin",
+ "qmanager",
+ "audit"
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "master",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "enable" : {
+ "type" : "boolean"
+ },
+ "role" : {
+ "type" : "string"
+ },
+ "userid" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{userid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create new user",
+ "method" : "POST",
+ "name" : "create",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "comment" : {
+ "description" : "Comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "crypt_pass" : {
+ "description" : "Encrypted password (see `man crypt`)",
+ "optional" : 1,
+ "pattern" : "\\$\\d\\$[a-zA-Z0-9\\.\\/]+\\$[a-zA-Z0-9\\.\\/]+",
+ "type" : "string"
+ },
+ "email" : {
+ "description" : "Users E-Mail address.",
+ "format" : "email",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "default" : 0,
+ "description" : "Flag to enable or disable the account.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "expire" : {
+ "default" : 0,
+ "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "firstname" : {
+ "description" : "First name.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "keys" : {
+ "description" : "Keys for two factor auth (yubico).",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "lastname" : {
+ "description" : "Last name.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "Password",
+ "maxLength" : 32,
+ "minLength" : 5,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "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>"
}
}
},
- "permissions" : {
- "user" : "all"
- },
+ "protected" : 1,
+ "proxyto" : "master",
"returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "type" : "array"
+ "type" : "null"
}
}
},
"leaf" : 0,
- "path" : "/nodes/{node}",
- "text" : "{node}"
- }
- ],
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "Cluster node index.",
- "method" : "GET",
- "name" : "index",
- "parameters" : {
- "additionalProperties" : 0
- },
- "permissions" : {
- "user" : "all"
- },
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{node}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- }
- }
- },
- "leaf" : 0,
- "path" : "/nodes",
- "text" : "nodes"
- },
- {
- "children" : [
+ "path" : "/access/users",
+ "text" : "users"
+ },
{
"children" : [
{
- "info" : {
- "DELETE" : {
- "allowtoken" : 1,
- "description" : "Delete a user.",
- "method" : "DELETE",
- "name" : "delete",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "userid" : {
- "description" : "User ID",
- "format" : "pmg-userid",
- "maxLength" : 64,
- "minLength" : 4,
- "type" : "string",
- "typetext" : "<string>"
+ "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"
}
}
},
- "protected" : 1,
- "proxyto" : "master",
- "returns" : {
- "type" : "null"
- }
- },
+ "leaf" : 1,
+ "path" : "/access/tfa/{userid}/{id}",
+ "text" : "{id}"
+ }
+ ],
+ "info" : {
"GET" : {
- "allowtoken" : 1,
- "description" : "Read User data.",
+ "allowtoken" : 0,
+ "description" : "List TFA configurations of users.",
"method" : "GET",
- "name" : "read",
+ "name" : "list_user_tfa",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
}
},
"permissions" : {
- "check" : [
- "admin",
- "qmanager",
- "audit"
- ]
+ "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" : {
- "type" : "object"
+ "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"
}
},
- "PUT" : {
- "allowtoken" : 1,
- "description" : "Update user data.",
- "method" : "PUT",
- "name" : "write",
+ "POST" : {
+ "allowtoken" : 0,
+ "description" : "Add a TFA entry for a user.",
+ "method" : "POST",
+ "name" : "add_tfa_entry",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "comment" : {
- "description" : "Comment.",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "crypt_pass" : {
- "description" : "Encrypted password (see `man crypt`)",
- "optional" : 1,
- "pattern" : "\\$\\d\\$[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>"
- },
- "email" : {
- "description" : "Users E-Mail address.",
- "format" : "email",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "enable" : {
- "default" : 0,
- "description" : "Flag to enable or disable the account.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "expire" : {
- "default" : 0,
- "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "firstname" : {
- "description" : "First name.",
- "maxLength" : 64,
+ "challenge" : {
+ "description" : "When responding to a u2f challenge: the original challenge string",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
- "keys" : {
- "description" : "Keys for two factor auth (yubico).",
- "maxLength" : 128,
+ "description" : {
+ "description" : "A description to distinguish multiple entries from one another",
+ "maxLength" : 255,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
- "lastname" : {
- "description" : "Last name.",
+ "password" : {
+ "description" : "The current password.",
"maxLength" : 64,
+ "minLength" : 5,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
- "password" : {
- "description" : "Password",
- "maxLength" : 32,
- "minLength" : 5,
+ "totp" : {
+ "description" : "A totp URI.",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
- "role" : {
- "description" : "User role. Role 'root' is reserved for the Unix Superuser.",
+ "type" : {
+ "description" : "TFA Entry Type.",
"enum" : [
- "root",
- "admin",
- "helpdesk",
- "qmanager",
- "audit"
+ "totp",
+ "u2f",
+ "webauthn",
+ "recovery"
],
- "optional" : 1,
"type" : "string"
},
"userid" : {
"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"
+ ],
+ "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"
+ "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" : 1,
- "path" : "/access/users/{userid}",
+ "leaf" : 0,
+ "path" : "/access/tfa/{userid}",
"text" : "{userid}"
}
],
"info" : {
"GET" : {
- "allowtoken" : 1,
- "description" : "List users.",
+ "allowtoken" : 0,
+ "description" : "List TFA configurations of users.",
"method" : "GET",
- "name" : "index",
+ "name" : "list_tfa",
"parameters" : {
"additionalProperties" : 0
},
"permissions" : {
- "check" : [
- "admin",
- "qmanager",
- "audit"
- ]
+ "description" : "Returns all or just the logged-in user, depending on privileges.",
+ "user" : "all"
},
"protected" : 1,
"proxyto" : "master",
"returns" : {
+ "description" : "The list tuples of user and TFA entries.",
"items" : {
"properties" : {
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "enable" : {
- "type" : "boolean"
- },
- "role" : {
- "type" : "string"
+ "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"
},
- "links" : [
- {
- "href" : "{userid}",
- "rel" : "child"
- }
- ],
"type" : "array"
}
- },
- "POST" : {
- "allowtoken" : 1,
- "description" : "Create new user",
- "method" : "POST",
- "name" : "create",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "comment" : {
- "description" : "Comment.",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "crypt_pass" : {
- "description" : "Encrypted password (see `man crypt`)",
- "optional" : 1,
- "pattern" : "\\$\\d\\$[a-zA-Z0-9\\.\\/]+\\$[a-zA-Z0-9\\.\\/]+",
- "type" : "string"
- },
- "email" : {
- "description" : "Users E-Mail address.",
- "format" : "email",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "enable" : {
- "default" : 0,
- "description" : "Flag to enable or disable the account.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "expire" : {
- "default" : 0,
- "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "firstname" : {
- "description" : "First name.",
- "maxLength" : 64,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "keys" : {
- "description" : "Keys for two factor auth (yubico).",
- "maxLength" : 128,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "lastname" : {
- "description" : "Last name.",
- "maxLength" : 64,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "password" : {
- "description" : "Password",
- "maxLength" : 32,
- "minLength" : 5,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "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"
+ "path" : "/access/tfa",
+ "text" : "tfa"
},
{
"info" : {
"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,